June 9, 2020 | Blog
FPGA for low latency trading: When optimization meets standardization
Field Programmable Gate Array (FPGA) technology has become more commonplace as electronic trading infrastructures have advanced over the last two decades. In this article I will share some opinions on the following questions that we commonly hear from the industry about FPGA and its use in low latency trading.
Where is FPGA being used for trading, and is it right for me?
For more than 10 years, FPGAs were used in low latency trading by market participants to get an edge over their competitors. High Frequency Traders (HFTs) in particular were the first to take advantage of this not-so-new technology and reap the benefits of building extremely optimized trading strategies within FPGA chips.
Fast forward to today and the FPGA is becoming an industry standard as traditional HFTs move toward building their own ASICs in order to retain their latency edge. Meanwhile, many firms that are latency sensitive but not latency critical have updated their infrastructure to leverage FPGA technology to stay in the game. Certain trading strategies that were profitable a few years ago without the need to use an ultra low latency infrastructure, now require a performance boost that can be achieved by adding FPGA to their infrastructure.
As the overall market moves toward more efficient, faster, lower latency trading systems, the question of using FPGA for a technology-driven trading firm is no longer “do we need it?”, but “how can we start using it?”
What are the differences in building a hardware FPGA-based trading system compared to a software one ?
Currently, anyone who starts from scratch designing a FPGA-based trading system will first need to invest in a team of skilled FPGA engineers that will spend a year or more building the necessary components – all before developing business logic can begin in earnest. The reality is that FPGA, unlike software, doesn’t come with hundreds of millions of users, an open source development environment, virtually unlimited libraries, supporting communities, continuous integration or anything else you would need when starting a new software project.
A great deal of effort was made by FPGA manufacturers, like Xilinx® and Intel®, to provide better support, integrated development environments, and free IP blocks, but none of this was built with low latency or electronic trading applications in mind. The low-latency finance industry – compared to other high volume uses of FPGA for media, defense or telecommunications – is relatively niche and wouldn’t justify the investment needed to develop and maintain an ultra low latency version of these components.
As a result, developers still require a specific “low latency” Ethernet MAC/PCS to access the network, a low latency network stack for IP and TCP layer management, a low latency “streaming DMA” to send and receive packets to a host system with a CPU, and eventually low latency math operators, low latency memory management algorithms, or even low latency memory controllers.
How is Enyx and nxFramework helping firms to build FPGA trading systems faster and more efficiently ?
At Enyx, we’ve spent the last 10 years developing, testing and fine-tuning these essential core IPs for our own use, while we were building Enyx low latency products. Most folks that are building their own trading systems are doing so to maintain control over critical pieces of their business infrastructure. Off the shelf, black-box trading systems do not lend themselves to this level of control, so they need to internally develop and maintain this vital piece.
This is why Enyx decided to take our internal framework, the base of all our products, and share the fruits of that development with our client base – giving them greater control over their own FPGA trading system development. There was significant effort in taking what we used everyday and making it deliverable as a product with the level of quality, documentation and support we strive to provide to our clients – and for which they have come to expect from us.
To further advance that goal, in addition to the provided protocol IP cores (Ethernet MAC/PCS, TCP/UDP, PCIe DMA), nxFramework comes packaged with a library of 60+ IPs for data streaming manipulation, memory-mapped I/O management, hashtables, caches, fifos, and math functions that help solve a variety of challenges that developers encounter when building trading systems. The library of building blocks establishes the basis for standardizing low latency FPGA development – something that was missing in the industry until now.
By starting from one of our reference designs – whether you are building a smart order router, a pre-trade risk gateway, or an automated trading engine – our framework enables any skilled FPGA development team to build a proof of concept in a matter of weeks, rather than months.
The primary nxFramework hardware components
We strongly believe that, like in software development, adaptability is key. We want to be able to deploy an application on different hardware platforms without having to rewrite code and validate systems again. This is why we are supporting the two main FPGA manufacturers, Xilinx and Intel, as well as a selection of FPGA PCIe boards and switches from certified partners in order to offer a broad range of hardware platforms where nxFramework based business applications can be deployed.
We are supporting the latest FPGA-enabled switches from Arista, the 7130L & LB series, for specific applications requiring a large number of ports. We are also proud to support the Xilinx® AlveoTM family, Bittware XUPP3R and REFLEX CES XpressGXA10-LP1150 PCI express boards. The programming model is the same across all of these platforms, through VHDL, Verilog or even HLS for the business logic, and C/C++ for the host software controlling your system.
Can trading system optimization for ultra low latency be compatible with the use of technology standards ?
As nxFramework grows as a product, Enyx will continue to add more value by including additional business oriented features such as order execution, market data feed parsing, and bandwidth management – areas where Enyx off-the-shelf solutions excel today.
With the introduction of nxFramework, low latency FPGA optimization can finally meet development standardization. nxFramework is a complete development environment, aimed at giving future FPGA development teams the standard foundation of any low latency project.
nxFramework feature stack roadmap
Reusability is key to lowering development costs, to faster time-to-market, and agility in general. FPGA will only become mainstream if standardization happens, and reusability is de facto. This will be possible as the focus turns toward features, and the pre-optimized business functions become more important than just saving tens of nanoseconds by rewriting your own PCIe layer.
Another part of making standardization and “joining forces” possible is the ability to share experiences and get enhanced support when integrating new technology in the hope of avoiding the need to individually code the same piece of software, for instance a book builder. Enyx is known for proactively supporting our customers requests and providing access to the top quality support engineers who built and use our products. This type of specialized/expert support will ensure your projects advance to production faster and at a lower cost than the skills required to build and maintain the components offered as a part of nxFramework, in house.
FPGA vendors are doing a great job at providing general-purpose frameworks, for example; Alveo™ for Xilinx® and PAC for Intel® with OPAE, but these one-size-fits-all frameworks currently lack the low latency aspect that would be required by the financial industry before any standardized components can be widely adopted to build an ultra low latency application. In our recent discussions with FPGA team leaders at large banks and hedge funds, we’ve been told: “I wish I had this 6 years ago” in reference to the components provided by nxFramework.
On the other hand, before nxFramework was available we saw those who bought piecemeal IP cores struggle at completing complex internal FPGA projects because it took too long to integrate each individual IP and build the overall environment to support their project. Therefore, if you are starting a new FPGA project, or migrating your existing project to a new board, and want to lay the groundwork for success, nxFramework is the tool set of choice to avoid you having to reinvent the wheel.
Originally posted on LinkedIn.
<< back to news list