FPGA技術在金融行業的應用——以滬深行情加速為例


https://zhuanlan.zhihu.com/p/86698219

FPGA(Field Programmable Gate Array)是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。

 

FPGA由於其可編程特性,可以被用於實現任意的邏輯功能,FPGA的每一個時鍾周期可以並行處理多個指令。由於FPGA可以被設計為專門處理某個(或某些)算法,所以即使其支持的時鍾頻率低於CPU,但單個時鍾周期可以完成的運算可以遠大於一個CPU指令可以完成的運算量,甚至整個算法都可能在幾個時鍾周期之內完成,所以完成整個算法FPGA所需的時鍾周期數可以遠低於CPU。

 

 

 

 

在證券交易領域,行情數據瞬息萬變,盈利的機會轉瞬即逝,擁有更低的時延、更快的響應,意味着能精准把握買賣機會和點位。現場可編程門陣列(“FPGA”)技術與傳統軟件系統相比,能實現可預知的超低時延,該技術已在模型計算、高頻交易等領域大放異彩。

本文主要介紹如何基於FPGA技術實現滬深行情硬件加速,涵蓋了系統的設計及實現、系統的實測效果及系統預留的強大擴展性等內容,希望能有助於國內證券行業對FPGA技術的研究和應用,為開發者提供簡單的相關技術參考。


 

 

一、概述

 

1.1 低交易時延的挑戰

 

  在證券交易領域,盈利的機會轉瞬即逝,“更低交易延遲”是所有金融交易追求的核心目標之一。目前國內金融行業的交易系統大部分基於傳統通用CPU架構,交易提速存在瓶頸,滿足不了超低時延的交易需求。而隨着 FinTech(金融科技)的發展,各種算法交易、量化交易興起,金融行業追求更低交易延遲時間的“競賽”不斷升級,成為各大金融機構的核心挑戰之一。尤其是近年來程序化交易在資本市場的全面應用,傳統的軟件技術或以軟件為核心的加速技術難以滿足微秒級的實時處理和實時響應的要求。業內均在尋求搭建低時延交易系統的解決方案,基於GPU、FPGA硬件並行加速的技術逐漸進入證券交易領域,成為金融科技領域新的趨勢,是華爾街的主流技術之一。

  降低交易延遲簡單來說就是如何實現金融數據加速。FPGA具有硬件可編程、低功耗、低時延的特性。基於RTL(Register Transfer Level:寄存器傳輸級)級的邏輯編程,可定制化各類通訊協議(如TCP/IP協議棧卸載)、各種消息編解碼(如上交所的FAST協議解碼)及系統各種顆粒度的操作,實現數據的並行和流水的並行,達到極低的系統時延和極高的系統容量。

1.2FPGA技術在滬深行情系統的應用

  近年來,隨着國內金融市場的快速發展和規模不斷擴大,業內信息系統往高性能、高可靠、高容量、低時延的方向發展。眾多金融技術公司,相繼推出基於FPGA的產品,尤其在期貨行業,使用FPGA開展各類應用的開發,如行情、交易、風控等領域,已經取得了許多成果,為FPGA在證券行業的應用開發提供參考。

架構的選型

 

FPGA架構近年來歷經Net-FPGA、OpenCL+RTL異構、RTL+軟件異構等,目前基於金融商用系統的穩定性、系統可擴展性、健壯性的充分考慮,選定RTL+軟件的異構架構。

為何選擇FPGA技術落地行情加速

 

通過對滬深行情從交易所前置機VDE/MDGW至行情應用客戶端的時延路徑進行分析(見下圖),當前業內大多數廠商采用軟件進行行情解碼,提供行情服務。

 

這些行情解碼服務時延明顯,可能超過10毫秒,且行情解碼軟件數據處理能力有限,牛市行情壓力下,實時性難以得到保證。而通過FPGA技術對滬深Level-2行情加速解碼,可以最終實現低至納秒級的滬市STEP-FAST解碼引擎,在理想測試環境下端到端的處理時延降低到數十微秒(含網絡時延)級別,得到明顯的提速效果。

 


二、FPGA技術在滬深行情加速的設計與實現

 

2.1 基於FPGA的異構架構設計

  根據業務及擴展需求,對基礎硬件選型指導如下:

  (1)10GE萬兆以太網接口,行情源、TCP行情推送、組播行情推送采用獨立的接口。

  (2)可定制化的TOE IP,支持TCP、UDP、IGMP、ICMP、ARP、RARP全卸載,且TCP連接數支持至少32個。

  (3)PCIe Gen3X8,且兼容Gen1/2/3。

  (4)至少兩個Bank DDR,內存容量不少於8GB。

 

  (5)至少兩個Bank QDR。

 

傳統TCP /IP 協議是基於CPU( Central Processing Unit,中央處理器) 軟件實現的,而使用CPU 進行TCP /IP 協議棧處理,存在能力不強、效率不高的缺點,占用大量的CPU資源,浪費存儲空間及產生大量功耗,使其性價比很低,影響性能,萬兆以太網的的帶寬資源得不到充分的利用。故所選的板卡使用萬兆以太網口作為其信息傳輸接口,支持TCP /IP 協議棧的TOE IP是關鍵之一。通過FPGA 來實現TCP /IP 協議棧以及以太網MAC 控制器,將原本屬於主CPU 的這部分工作由額外的硬件電路完成,減輕CPU 的負擔,加速網絡處理的能力,提升系統的性能。系統的可擴展性是系統設計的重點之一。由下往上分為五個邏輯層次,包括FPGA基礎通信層、FPGA行情業務層、行情管理層、Host-FPGA接口層和Host管理服務層,層次之間設計開發邊界明確,上層依賴下層模塊,調用下層或同層模塊的接口,上下層之間功能充分解耦,如下圖示。

其中FPGA基礎通信實現獨立的通信功能,提供清晰的功能邊界和明確的開發接口。在Host側與FPGA側可通過C++方式的API進行直接調用。

 

2.2 Level-2行情解碼引擎

  上海證券交易所信息網絡公司(簡稱“上交所”)於2016年建設新一代的低時延行情發布系統LDDS,支持多種信源,具有低時延、大流量、易擴展、高可用等特點,系統在較優的網絡環境中平均時延小於1ms。該Level-2行情系統是基於FAST技術標准、面向專業投資者的新一代實時行情發布系統。與傳統的基本行情相比,Level-2行情更加實時,包含更多的價位深度、逐筆成交、訂單等內容和其他有價值的信息。下面以上交所的Level-2行情為例,闡述行情解碼引擎的實現。

  上交所的LDDS以國際標准的金融信息交換協議(FIX/FAST)為基礎,結合中國標准的證券交易數據交換協議(STEP)的特點確定數據傳輸協議,根據我國證券市場數據的特點以及Level-2行情內容的特性設計在證券市場數據領域具有獨創性的算法。FAST協議在保持FIX協議靈活性的基礎上,將市場數據大幅度壓縮,大大提高了處理速度。FAST系統大幅減少Level-2行情所需的傳輸帶寬(不到原來的25%)和發布系統的負荷(減少到原來的10%)  

 

鑒於上交所FAST協議的復雜性,同時根據RTL的特性,設計出一套並行、全流水式的高效STEP-FAST解碼引擎方案,如下圖所示,不同行情類型解碼並行處理,根據實際應用增加引擎數量,達到更高的數據解碼吞吐率。同時做到FAST的XML模板可配,以應對交易所的變更。

 

— — — — — — E N D — — — — — —

 

真格量化可訪問:

https://quant.pobo.net.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM