Technical

FPGA Explained

In this article, CTO James Lupton and CRO Ciaran Kennedy discuss FPGA cards. What is an FPGA? Do I need to use them? Will FPGA cards accelerate my electronic trading strategy? Read on to get answers from the experts.

James Lupton

- 3 min read

An FPGA (Field Programmable Gate Array) is a reconfigurable hardware chip that uses software-based logic to program the chip to perform a certain set of functions. This is comparable to a much more commonly deployed ASIC (Application Specific Integrated Circuit) which is custom designed for a particular task or application. Generally, ASIC development and design costs are in the hundreds of million-dollar range and once completed can only perform the function specified at design time. Comparatively, FPGA chips can be re-programmed many times to iterate on designs and are often used for ASIC prototyping but also have gained popularity in industries such as media and entertainment, digital signal processing, and financial trading applications where data processing requirements may change over time, therefore being able to re-program in the field brings significant advantages. In this way, FPGAs can be deployed more similarly to software-based applications but also provide the advantages of speed and predictability that a hardware chip brings.

 

How do FPGAs work?

FPGAs implement logic via a series of "gates" which are configured via a software-like Hardware Description Language (HDL), like VHDL or Verilog, where logic blocks are configured in a combination that will perform a specific task. This is then transformed into a "gateware" or "firmware" image that will be placed on the FPGA to perform the functions with interfaces to other hardware or software functions related to the application.

When/why would someone use an FGPA?

The most common decision points when using an FPGA are whether it can bring a performance advantage over a traditional software application and whether that logic is likely to change in the future.  A common use of FPGA usage that we encounter at Blackcore is with electronic trading firms that wish to speed up their overall trading stack by placing certain pieces of that logic in FPGA. This can range from complete tick-to-trade applications to network stacks to risk management. In many cases, the FPGA is complemented by traditional software which helps set parameters to the FPGA based on current trading conditions. In this scenario, we see trading firms leverage a combination of FPGA and overclocked servers to gain high performance across all aspects of the trading stack.

FGPA vs GPU: What's the difference?

GPUs (Graphics Processing Units), as their name suggests, were originally designed for a single function - processing graphics faster than a typical CPU. A GPU is an example of an ASIC. Based on this initial use case you will typically find that GPUs by nature are a resource that can be used by a software application running on a CPU (over PCIe) to speed up certain parallel processing calculations and large/fast memory operations. GPUs can be used from more widely known software development languages (C++, Java), etc, whereas FPGA will require specific expertise in an HDL language. FPGAs bring wider flexibility in use and more control over the predictability of a certain processing path as in most cases the primary path is not leveraging parallel processing. FPGAs can operate independently of a CPU and with other peripherals independently but in most cases do leverage PCIe to configure, control, and operate the FPGA logic from software.

What are the main advantages of using FGPAs, are there any disadvantages?

The primary advantages are speed, predictability, and re-programmability. The disadvantages are that the development process can be more complex than traditional software development, take longer, and generally cost more from a hardware and developer perspective.  

Why is this tech important?

FPGAs are not something new, but their adoption for new-use cases has driven the adoption and development of many new hardware platforms which include FPGAs, from PCIe cards to network switches. This generally allows developers to make decisions on the best tool for the task at hand, rather than being limited by typical software-based CPU execution.

What FPGA cards are typically used for electronic trading?

Typically, Bittware and AMD (utilising Xilinx FPGA chips) have been widely deployed for low-latency tick-to-trade scenarios. Bittware has historically utilized AMD FPGAs on a custom board design, well known models include the XUP-P3R and the XUP-VV8 but more recently have launched offerings based on Intel FPGA designs. Additionally, AMD has their board designs leveraging their own silicon, across a range of FPGA sizes and use-cases – see the Alveo range. A range of third-party vendors also provide applications, designs and toolkits to allow quick time to market with your FPGA of choice. 

It's clear that FPGAs are a great asset to any trading team chasing the lowest possible latency, if you’re new to FPGA use cases, reach out to Blackcore and we can guide you to the right partner technology for your solution.

If you would like to learn more about Blackcore Technologies you can email [email protected] or book a call with our CRO Ciaran Kennedy here.

James Lupton

- 3 min read

We use cookies, review our privacy policy here.