0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文解析高頻交易中FPGA的作用及面試建議

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2025-01-23 10:57 ? 次閱讀

為高頻交易(High Frequency Trading,HFT)公司開發(fā)硬件一直是 FPGA 工程師最熱門的職位之一。由于該行業(yè)提供的高薪,甚至可以被稱為該領(lǐng)域許多人的“夢想職業(yè)”。本文根據(jù)自己和其他人的親身經(jīng)歷,寫了一篇關(guān)于測試職位是什么樣子以及如何準(zhǔn)備面試的文章。

HFT 世界是什么樣的

為了理解這些術(shù)語并以更合適的方式做好準(zhǔn)備,我們首先來談?wù)?HFT 是什么,以及為什么 FPGA 在交易行業(yè)中占有一席之地。

高頻交易是算法交易(https://www.investopedia.com/articles/active-trading/101014/basics-algorithmic-trading-concepts-and-examples.asp)的一種變體,算法交易本身是自動日間交易的一種變體,從根本上講,是由算法而不是人來下訂單。人編寫和監(jiān)控算法,但不手動下交易。在 HFT 中,所有這些都被推向極致,利用可能只持續(xù)幾毫秒的機會,通常是套利機會。為了有效地利用這樣的機會并賺錢,人們需要在極短的時間內(nèi)消化市場數(shù)據(jù)、做出決策并下大量訂單。這就是比賽的開始。

在那本令人驚嘆的書《Trading at the speed of Light,光速交易》中,唐納德·麥肯齊解釋了即使在芝加哥場內(nèi)交易的日子里,人們也通過創(chuàng)建系統(tǒng)來適應(yīng)環(huán)境,使某些人的交易速度比其他人快得多。本質(zhì)上,設(shè)計交易是一個可以利用信息不對稱的游戲,如果此時你有一些信息尚未傳達給其他人,那么就存在一種不對稱,你可以預(yù)測其他人在獲得這些信息后會做什么,并據(jù)此做出決定。這種不對稱是套利機會和許多其他可以賺錢的復(fù)雜場景的基礎(chǔ)。由于交易所本身所使用的技術(shù)的重大進步,這些不對稱的機會已經(jīng)變得極為罕見且短暫。

然而,事實是,僅僅因為離交易所較近的人比離交易所較遠的人獲取數(shù)據(jù)的速度更快,也就無法消除這種不對稱現(xiàn)象。那些能夠更快傳輸數(shù)據(jù)的人也是如此(微波塔、租用光纖線路)。同樣,那些能夠在收到數(shù)據(jù)后做出更快決策的人也可以在這場競爭中領(lǐng)先。這正是 HFT 公司聘請 FPGA 工程師來幫助解決的問題。

交易所允許公司在附近的特定建筑物中設(shè)置計算機。無論與哪個股票經(jīng)紀(jì)人交易,那里可能都有一臺機器。這稱為主機托管。交易所確保從這些機器到交易所計算機的光纖長度對于主機托管中的每個參與者來說都是完全相同的。

在這種情況下,再靠近交易所的空間已經(jīng)不大了。不過,我們可以做的是盡量減少消化數(shù)據(jù)和發(fā)出訂單所需的時間。為了實現(xiàn)這一點,這些服務(wù)器在處理速度、內(nèi)存速度和延遲方面都擁有極高的規(guī)格。它們被超頻并優(yōu)化到了它們所能提供的極限。

盡管進行了這些優(yōu)化,但 CPU 從根本上來說仍存在兩個對 HFT 不太友好的”怪癖“。

更高的執(zhí)行延遲

238607f2-d923-11ef-9310-92fbcf53809c.png

CPU 需要將算法分解為 ISA 并按順序執(zhí)行,盡管速度可能很快,由于關(guān)鍵路徑中有幾個交互元素,在處理交互元素的過程會產(chǎn)生很大的開銷。

不確定的執(zhí)行延遲

交易算法并不是 CPU 上運行的唯一程序。操作系統(tǒng)同時管理著許多進程和線程。這可能導(dǎo)致同一程序在不同執(zhí)行中花費的時間不同。對于那些押注大量資金并保證該過程將花費一定時間的人來說,這可能是一個巨大的問題。如果只是這一次花費的時間長,就可能意味著巨額損失。

FPGA 如何提供幫助

FPGA 可幫助解決上述兩個主要問題。它們能解決不確定性問題。可以預(yù)先知道某種操作在 FPGA 中需要多少個時鐘周期,并確保在整個操作過程中它不會發(fā)生變化。

FPGA 還經(jīng)常(并非總是)幫助解決高處理延遲的問題。在解碼市場數(shù)據(jù) -> 做出決策 -> 發(fā)送訂單的整個流程中,多個子功能可以使用基于 FPGA 的加速。

FPGA 不能很好地處理復(fù)雜的數(shù)學(xué)運算,因此工程師們仔細(xì)分析了它們的處理管道,并找出了實現(xiàn)選擇性過程大幅加速的方法。以下是與 FPGA 連接的交易機的處理流程:

238ed184-d923-11ef-9310-92fbcf53809c.png

截至今天,市場上有許多流行的開發(fā)板,通過處理諸如以太網(wǎng)和 PCIe 之類的一些棘手的模塊,為 HFT 相關(guān)的 FPGA 開發(fā)提供工作臺。

面試準(zhǔn)備

現(xiàn)在,對HFT世界有了一個很好的印象,我希望對使用這些尖端工具的興趣會越來越濃厚。讓我們來談?wù)勛鳛?HFT FPGA 工程師在日常工作中需要具備的技能。

數(shù)字電路和 RTL 設(shè)計

精通數(shù)字邏輯、Verilog 和微架構(gòu)開發(fā)。

這些是基礎(chǔ)。應(yīng)聘者需要具備編寫 RTL、調(diào)試和在板上部署 RTL 的經(jīng)驗。面試通常要求應(yīng)聘者當(dāng)場編寫 RTL。

問題陳述也可能相當(dāng)復(fù)雜和令人費解,與傳統(tǒng)的 FPGA 工作(例如網(wǎng)絡(luò)或國防工業(yè))不同。這既考驗應(yīng)聘者的智商,也考驗應(yīng)聘者的 RTL 技能。

公司非常重視編寫花費更少時間來完成某項任務(wù)的代碼,這通常需要集思廣益,想出完成同一件事的不同方法,并提出一種低延遲的替代方案,同時保持足夠合理以便在限制時間內(nèi)實現(xiàn)。

狀態(tài)機編碼:狀態(tài)機是FPGA中另一個非常常見的模塊。

先進先出(FIFO):FIFO 無處不在,同步、異步等各種類型。

驗證基礎(chǔ)知識:

如前所述,F(xiàn)PGA 團隊在 HFT 中規(guī)模很小,因此單個開發(fā)人員必須身兼數(shù)職才能完成一個項目。此外,由于交易規(guī)模巨大(一次數(shù)百萬美元),設(shè)計中的一個錯誤就可能導(dǎo)致?lián)p失大量資金,損失金額可能相當(dāng)于幾年的年薪。

因此驗證成為一項非常重要的任務(wù)。盡管 FPGA 可以多次重新編程,但風(fēng)險很高,必須小心謹(jǐn)慎,確保不會出現(xiàn)任何錯誤。

為代碼編寫高效的測試臺和測試用例是一項寶貴的技能。對于經(jīng)驗更豐富的人,了解 System Verilog 和 UVM 可能是一個加分點。

網(wǎng)絡(luò)基礎(chǔ)知識:

工作中實際實施的項目通常圍繞網(wǎng)絡(luò)展開。

傳入的市場數(shù)據(jù)通過 TCP 通道傳輸,交易機器需要維護 TCP 連接,這可能是另一個潛在加速的領(lǐng)域。

類似地,可能需要過濾一些數(shù)據(jù),并將其打包成數(shù)據(jù)包發(fā)送到不同的地方(通常是另一個交換機)。TCP 或 UDP 可用于通信的這一部分,這也是一種很好的加速方式。

掌握以太網(wǎng)協(xié)議及其細(xì)節(jié)的基本知識在競爭中保持領(lǐng)先大有幫助。

以太網(wǎng)、PCIe 和網(wǎng)絡(luò)架構(gòu)(可選、高級):

許多資金雄厚的大公司自己實現(xiàn)相關(guān)的協(xié)議棧。但大多數(shù)其他公司直接使用經(jīng)過驗證的 IP。只有少數(shù)大公司才需要以下技能。

對于以太網(wǎng),需要掌握的知識非常豐富,包括對 SERDES、PHY 與 PCS 層功能、MAC 層功能以及針對特定目的的潛在優(yōu)化的理解。如果沒有在行業(yè)環(huán)境中進行過相關(guān)實踐,很難獲得這些知識和經(jīng)驗。

推薦下面的文章:

https://support.ixiacom.com/sites/default/files/resources/whitepaper/PCS_white_paper.pdf

PCIe 屬于同一類別。它是另一種廣泛的協(xié)議,包含大量細(xì)節(jié)和文檔。除非初學(xué)者使用過它,否則幾乎不可能知道這些。但是,有一些宏觀概念總是好的。

同樣,F(xiàn)PGA 并不是網(wǎng)絡(luò)上唯一的機器,還有許多其他東西,如交換機、NIC、其他交易機器等,它們可以在做出決策時進行交互操作。對網(wǎng)絡(luò)架構(gòu)有充分的了解,并且知道可以調(diào)整哪些方面以獲得那一點點延遲優(yōu)勢,這可能是一個很大的優(yōu)勢。

實用技巧:

靜態(tài)時序分析(STA)

對于初學(xué)者來說,靜態(tài)時序分析是一種測試邏輯是否滿足 FPGA 時序約束和可靠功能的方法。如上所述,推薦下面的文章

https://thedatabus.io/interview_list

這一點非常重要。通常,由于對延遲極其敏感,HFT 應(yīng)用的 RTL 是用非常低的流水線編寫的,可以在更少的時鐘內(nèi)完成大量工作。這顯然會導(dǎo)致綜合、布局布線工具將 LUT 放置得非常近,以改善延遲。

一旦完成并驗證了 RTL 編碼,由于這種擁塞,工具可能無法滿足設(shè)計的 FPGA 的時序,這種情況很常見。這就需要對 STA 有很深的了解,才能處理邏輯并重新構(gòu)建它以嘗試滿足時序。

跨時鐘域 (CDC)

這是任何 RTL 設(shè)計師都需要的一項基本技能,無論是否需要 HFT。幾乎每個面試官在完成 STA 后都會詢問你所了解的不同 CDC 技術(shù)。他們甚至可能會問你為什么一種方法比另一種更好,甚至可能讓你編寫一些代碼。

去讀一下關(guān)于 CDC 的這篇文章,或許對你有所幫助

https://thedatabus.in/cdc_complete_guide

23a2f1b4-d923-11ef-9310-92fbcf53809c.png

假設(shè)使用雙觸發(fā)同步器執(zhí)行 CDC,你會為該元素向 .xdc 文件(約束文件)添加哪些約束?ASFIFO 呢?

區(qū)域優(yōu)化

這與前面提到的時序優(yōu)化密切相關(guān)。

HFT 應(yīng)用的設(shè)計通常不是很大,它們不會占據(jù) FPGA 的大部分空間,但邏輯元件彼此之間距離太近,導(dǎo)致?lián)砣l(fā)各種問題。解決此問題的唯一方法是準(zhǔn)確了解 RTL 推斷的內(nèi)容,以及如何對其進行修改以減少擁塞。

通常,對 FPGA 架構(gòu)及其基本元素(LUT、BRAM、DSP 等)的良好了解可以很好的做出決策。

此外,與其只是編寫 RTL 并對其進行仿真,不如將其貫穿整個實施流程(綜合、布局和布線等),這樣可以更深入地了解 RTL 在到達硅片時最終會發(fā)生什么。下一步是嘗試以一種能夠減少資源利用率和設(shè)備區(qū)域擁塞的方式控制這種“推斷”。

硬件測試

網(wǎng)絡(luò)知識

https://beej.us/guide/bgnet/html/#intro

23b08c3e-d923-11ef-9310-92fbcf53809c.png

把這本書從頭到尾讀一遍,然后嘗試在基于 Linux 的計算機上練習(xí)所有內(nèi)容。

以太網(wǎng)實踐知識

以太網(wǎng)知識是HFT工作的必需品。學(xué)會一些調(diào)試工具(如wireshark等工具)的使用。

在此過程中,還將使用許多 Linux 命令。

C++ 和驅(qū)動程序

在任何類型的嵌入式系統(tǒng)中,例如帶有 FPGA 的交易機,都需要編寫與硬件對話的驅(qū)動程序。作為 FPGA 開發(fā)人員,需要至少在一定程度上完成這項工作,這足以在真實硬件上測試設(shè)計,并為實際軟件人員提供概念驗證。

金融和交易知識

這不是必需的,也不會要求了解或?qū)W習(xí)這一點。

DSA/計算機科學(xué)技能

通常在編寫任何代碼時,為了處理數(shù)據(jù)或測試硬件,將編寫大量軟件。編寫良好的代碼可以大大減少使其運行并完成手頭任務(wù)所需的時間。本著這種精神,如果面試官問你幾個與數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的問題,也不要感到驚訝。

總結(jié)

本文是國外的一個朋友在準(zhǔn)備相關(guān)行業(yè)面試的時候總結(jié)的一篇文章,和國內(nèi)可能會有所差異,但是可以作為參考,有從事相關(guān)行業(yè)的大佬可以在評論區(qū)聊聊從事該行業(yè)的注意點~

PS:前面提到的《光速交易》這本書非常有趣,即使沒有在相關(guān)行業(yè)工作,它也能讓你對這個世界有很深的了解。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21794

    瀏覽量

    605127
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10901

    瀏覽量

    212640
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11339

    瀏覽量

    210118

原文標(biāo)題:高頻交易中 FPGA 的作用及面試指南

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    面試題】人工智能工程師高頻面試題匯總:概率論與統(tǒng)計篇(題目+答案)

    、機器學(xué)習(xí)的那些算法,或者深度學(xué)習(xí)的框架,還有怎么優(yōu)化模型,Transformer等,這些都是加分項,能有效提高面試通過率。本篇小編整理了高頻的概率論與統(tǒng)計——貝
    的頭像 發(fā)表于 01-22 13:00 ?213次閱讀
    【<b class='flag-5'>面試</b>題】人工智能工程師<b class='flag-5'>高頻</b><b class='flag-5'>面試</b>題匯總:概率論與統(tǒng)計篇(題目+答案)

    面試題】人工智能工程師高頻面試題匯總:機器學(xué)習(xí)深化篇(題目+答案)

    ,或者深度學(xué)習(xí)的框架,還有怎么優(yōu)化模型,這些都是加分項,能有效提高面試通過率。本篇小編整理了高頻的機器學(xué)習(xí)深化方面的面試題,這些題目都是從實際
    的頭像 發(fā)表于 12-16 13:42 ?2040次閱讀
    【<b class='flag-5'>面試</b>題】人工智能工程師<b class='flag-5'>高頻</b><b class='flag-5'>面試</b>題匯總:機器學(xué)習(xí)深化篇(題目+答案)

    面試題】人工智能工程師高頻面試題匯總:Transformer篇(題目+答案)

    ,或者深度學(xué)習(xí)的框架,還有怎么優(yōu)化模型,Transformer的些知識,這些都是加分項,能有效提高面試通過率。本篇小編整理了高頻的Transformer方面的面
    的頭像 發(fā)表于 12-13 15:06 ?587次閱讀
    【<b class='flag-5'>面試</b>題】人工智能工程師<b class='flag-5'>高頻</b><b class='flag-5'>面試</b>題匯總:Transformer篇(題目+答案)

    傅立葉變換在圖像處理作用

    傅里葉變換在圖像處理中發(fā)揮著至關(guān)重要的作用。以下是傅里葉變換在圖像處理的幾個主要作用、圖像增強與去噪 去噪 :圖像的噪聲通常表現(xiàn)為
    的頭像 發(fā)表于 12-06 16:55 ?673次閱讀

    高頻旁路電容有哪些作用?國內(nèi)有哪些供應(yīng)商?

    在電子電路,高頻旁路電容器是種不可或缺的元件,它在高頻電路中發(fā)揮著重要的作用。本文將詳細(xì)介紹高頻
    的頭像 發(fā)表于 12-06 16:33 ?193次閱讀

    人工智能工程師高頻面試題匯總——機器學(xué)習(xí)篇

    ,或者深度學(xué)習(xí)的框架,還有怎么優(yōu)化模型,這些都是加分項,能有效提高面試通過率。本篇小編整理了高頻的機器學(xué)習(xí)方面的面試題,這些題目都是從實際面試
    的頭像 發(fā)表于 12-04 17:00 ?958次閱讀
    人工智能工程師<b class='flag-5'>高頻</b><b class='flag-5'>面試</b>題匯總——機器學(xué)習(xí)篇

    電感在高頻電路作用 電感在開關(guān)電源的應(yīng)用

    電感在高頻電路作用 電感在高頻電路扮演著至關(guān)重要的角色,其主要作用包括阻抗匹配、頻率選擇、
    的頭像 發(fā)表于 12-03 15:54 ?518次閱讀

    2.34納秒超低時延,滿足金融市場高頻交易,AMD發(fā)布新代金融加速卡

    電子發(fā)燒友網(wǎng)報道(/黃晶晶)面對金融行業(yè)處理大量數(shù)據(jù)、即時交易的需求,AMD提供CPU到FPGA的全套解決方案支持快速地交易執(zhí)行。其中,在資本市場,HFT(
    的頭像 發(fā)表于 11-11 01:13 ?1614次閱讀
    2.34納秒超低時延,滿足金融市場<b class='flag-5'>高頻</b><b class='flag-5'>交易</b>,AMD發(fā)布新<b class='flag-5'>一</b>代金融加速卡

    高頻功率變壓器磁芯的作用

    高頻功率變壓器磁芯是電子設(shè)備不可或缺的組件之,它在電源轉(zhuǎn)換、信號傳輸和電磁兼容性等方面起著至關(guān)重要的作用。 高頻功率變壓器磁芯的
    的頭像 發(fā)表于 09-07 10:40 ?771次閱讀

    高頻旁路電容的選擇原則

    在電子電路設(shè)計高頻旁路電容的選擇是個非常重要的問題。旁路電容的主要作用是濾除高頻噪聲,提高電路的穩(wěn)定性和可靠性。在
    的頭像 發(fā)表于 08-09 15:44 ?839次閱讀

    igbt在高頻電源的作用有哪些

    IGBT(絕緣柵雙極晶體管)是種功率半導(dǎo)體器件,廣泛應(yīng)用于高頻電源領(lǐng)域。在高頻電源,IGBT具有許多重要作用,以下是對這些
    的頭像 發(fā)表于 08-07 17:08 ?620次閱讀

    高頻電流互感器CT的作用和應(yīng)用場景

    ▼關(guān)注公眾號:電子嵌入式學(xué)習(xí)▼ ????高頻電流互感器(HighFrequency Current Transformer, HFCT)是種用于測量高頻電流的設(shè)備,常用于電力系統(tǒng)和電子設(shè)備
    的頭像 發(fā)表于 07-21 17:46 ?1765次閱讀
    <b class='flag-5'>高頻</b>電流互感器CT的<b class='flag-5'>作用</b>和應(yīng)用場景

    科普 | 了解FPGA

    落后但追趕進度較快,繼紫光同創(chuàng)開發(fā)出中國唯一一款自處產(chǎn)權(quán)千萬門級高性能 FPGA PGT180H 以來,上海復(fù)旦微電子于 2018 年 5 月在第二屆中國高校科技成果交易會上發(fā)布了新代自主知識產(chǎn)權(quán)億門
    發(fā)表于 07-08 19:36

    解析EMI濾波器:作用、原理和應(yīng)用?

    解析EMI濾波器:作用、原理和應(yīng)用?|深圳比創(chuàng)達電子EMC
    的頭像 發(fā)表于 03-28 10:11 ?1932次閱讀
    <b class='flag-5'>解析</b>EMI濾波器:<b class='flag-5'>作用</b>、原理和應(yīng)用?

    北斗衛(wèi)星同步時鐘對高頻率金融交易的應(yīng)用

    公司有沒有穩(wěn)固的網(wǎng)絡(luò)系統(tǒng)?”來自名金融類高頻交易員的疑問。 針對以上疑問,可想而知個精準(zhǔn)的時間對金融行業(yè)的重要性。選用北斗衛(wèi)星同步時鐘可以保證時間的精準(zhǔn)
    的頭像 發(fā)表于 03-05 10:03 ?482次閱讀
    北斗衛(wèi)星同步時鐘對<b class='flag-5'>高頻</b>率金融<b class='flag-5'>交易</b>的應(yīng)用