全面了解FPGA。
1 FPGA簡(jiǎn)介
當(dāng)我們需要進(jìn)行計(jì)算時(shí),通常會(huì)選擇使用基于指令的架構(gòu),比如中央處理器(CPU)或圖形處理器(GPU),編寫(xiě)適用于這些架構(gòu)的軟件程序。這些架構(gòu)是通用的,可以執(zhí)行各種不同類型的計(jì)算任務(wù)。
然而,還有一種不同的方法,即為特定的計(jì)算任務(wù)設(shè)計(jì)專門(mén)的電路,不依賴于通用架構(gòu)和軟件。這種方法更加費(fèi)力,需要進(jìn)行電路設(shè)計(jì)和硬件實(shí)現(xiàn),但可以在特定計(jì)算任務(wù)上獲得更高的性能和效率。
本文重點(diǎn)介紹這種能獲取高性能的方法,即使用可重構(gòu)集成電路,也稱為現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)。FPGA是一種特殊的芯片,可以通過(guò)配置來(lái)實(shí)現(xiàn)各種不同的電路功能??梢愿鶕?jù)特定的計(jì)算需求,將FPGA配置成一個(gè)定制的電路,以執(zhí)行特定的計(jì)算任務(wù)。與基于指令的架構(gòu)不同,F(xiàn)PGA不需要編寫(xiě)軟件程序,而是直接配置硬件電路來(lái)執(zhí)行計(jì)算任務(wù)。
2 FPGA的優(yōu)劣勢(shì)
為什么我們傾向于使用 FPGA 進(jìn)行計(jì)算,而不是更常見(jiàn)的CPU或GPU?與GPU和CPU相比,F(xiàn)PGA在以下幾個(gè)方面存在差異:
延遲:計(jì)算需要多長(zhǎng)時(shí)間?
→ FPGA在這方面表現(xiàn)良好。
連通性:可以連接哪些輸入/輸出,以及帶寬是多少?
→ FPGA可以直接連接輸入,并提供非常高的帶寬。
工程成本:表達(dá)計(jì)算需要多少工作量?
→ 工程成本通常比基于指令的架構(gòu)要高得多,因此其優(yōu)勢(shì)必須物有所值。
能源效率:計(jì)算需要消耗多少能源?
→ 這經(jīng)常被列為FPGA的一個(gè)巨大優(yōu)勢(shì),但FPGA是否比CPU或GPU更好,實(shí)際上取決于應(yīng)用場(chǎng)景。
接下來(lái)更詳細(xì)地討論每個(gè)方面。
3 低延遲
FPGA相對(duì)于CPU和GPU具有更低的延遲。在特定的應(yīng)用場(chǎng)景下,使用FPGA可以實(shí)現(xiàn)非常低的延遲。
使用FPGA,可以實(shí)現(xiàn)約等于或低于1微秒的延遲;而使用CPU,延遲小于50微秒已經(jīng)是非常不錯(cuò)的表現(xiàn)了。此外,F(xiàn)PGA的延遲更加可預(yù)測(cè),更具確定性。主要原因是FPGA更加專用化:它們不依賴于通用操作系統(tǒng),并且通信無(wú)需通過(guò)通用總線(如USB或PCIe)進(jìn)行。
因此,對(duì)于需要高性能和低延遲的應(yīng)用場(chǎng)景,例如噴氣式戰(zhàn)斗機(jī)的自動(dòng)駕駛儀或高頻算法交易引擎,選擇使用FPGA是個(gè)更好的選擇,它能夠提供非常短的延遲,更可靠的性能,并且能夠滿足特定的需求,不受通用架構(gòu)和操作系統(tǒng)的限制。
4 連通性
在FPGA上,可以直接把任何數(shù)據(jù)源(如網(wǎng)絡(luò)接口或傳感器)連接到芯片的引腳上,這點(diǎn)與GPU和CPU形成鮮明對(duì)比,因?yàn)樵贕PU和CPU上,必須通過(guò)標(biāo)準(zhǔn)化總線(如USB或PCIe)連接數(shù)據(jù)源,并依賴操作系統(tǒng)將數(shù)據(jù)傳遞給應(yīng)用程序。FPGA的與芯片引腳的直接連接提供了極高的帶寬和低延遲。
這種高帶寬在無(wú)線電天文學(xué)應(yīng)用中是必需的,比如LOFAR和SKA。在這些應(yīng)用中,現(xiàn)場(chǎng)裝有許多專用傳感器,產(chǎn)生大量數(shù)據(jù)。為了更方便處理,必須在發(fā)送之前減少數(shù)據(jù)量。為此,荷蘭無(wú)線電天文學(xué)研究所ASTRON設(shè)計(jì)了Uniboard2,這是一塊搭載了四個(gè)FPGA的板卡,其每秒處理的數(shù)據(jù)量比阿姆斯特丹互聯(lián)網(wǎng)交換中心還要多。
5 工程成本
在討論能源效率這個(gè)微妙問(wèn)題之前,讓我們先討論FPGA的主要缺點(diǎn):相比基于指令的架構(gòu)(即CPU和GPU),它們的編程/配置要困難得多。傳統(tǒng)上,這些硬件電路是通過(guò)硬件描述語(yǔ)言(HDL),如VHDL和Verilog,進(jìn)行描述的,而軟件則是通過(guò)眾多編程語(yǔ)言之一,如Java、C和Python進(jìn)行編程的。
從理論上講,硬件描述語(yǔ)言和編程語(yǔ)言都可以用來(lái)表達(dá)任何計(jì)算(都是圖靈完備的),但在工程細(xì)節(jié)上存在巨大的差異。
一種新興的趨勢(shì)是高級(jí)綜合(HLS):使用常規(guī)編程語(yǔ)言(如OpenCL或C++)對(duì)FPGA進(jìn)行編程,從而實(shí)現(xiàn)更高級(jí)別的抽象。然而,即使使用這樣的語(yǔ)言,編程FPGA的難度仍然比編程基于指令的系統(tǒng)高一個(gè)數(shù)量級(jí)。
編程FPGA的困難部分很大程度上是長(zhǎng)時(shí)間的編譯時(shí)間。例如,使用英特爾的OpenCL編譯器,編譯一個(gè)典型的FPGA程序需要4到12個(gè)小時(shí)之間。這是由于布局和布線階段:想要的定制電路需要映射到擁有的FPGA資源上,并且路徑盡可能短。這是一個(gè)復(fù)雜的優(yōu)化問(wèn)題,需要大量計(jì)算。英特爾提供了一個(gè)仿真器,因此測(cè)試正確性不需要進(jìn)行這個(gè)漫長(zhǎng)的步驟,但確定和優(yōu)化性能確實(shí)需要進(jìn)行這些漫長(zhǎng)的編譯階段。
6 能源效率
在英特爾的宣傳中,一直強(qiáng)調(diào)FPGA在能源效率方面具有明顯的優(yōu)勢(shì)。然而,實(shí)際情況并不那么明確,尤其是在涉及浮點(diǎn)計(jì)算時(shí)。但我們首先來(lái)考慮FPGA相對(duì)于CPU或GPU在能源效率方面的明顯優(yōu)勢(shì)。
就邏輯和固定精度計(jì)算而言,F(xiàn)PGA在能源效率方面表現(xiàn)出色。尤其在加密貨幣挖掘中,正是這一特性使得FPGA具有優(yōu)勢(shì)。實(shí)際上,過(guò)去很多人都使用FPGA進(jìn)行比特幣挖掘。
值得一提的是,如今大多數(shù)人都使用ASIC(專用集成電路)進(jìn)行比特幣挖掘。ASIC是專門(mén)為特定目的而構(gòu)建的定制集成電路。雖然ASIC是更為能源高效的解決方案,但需要巨額的前期投資用于設(shè)計(jì)和批量芯片生產(chǎn),才能實(shí)現(xiàn)成本效益。
從能源效率的角度來(lái)看,F(xiàn)PGA板不需要依賴主機(jī)計(jì)算機(jī)運(yùn)行,因?yàn)樗鼈兙邆渥约旱妮斎?輸出接口,這樣可以節(jié)省主機(jī)的能源和金錢開(kāi)銷。而與之相反的是GPU,GPU需要通過(guò)PCIe或NVLink與主機(jī)系統(tǒng)進(jìn)行通信,因此需要主機(jī)的運(yùn)行支持。(NVidia Jetson是GPU的一個(gè)例外,但它并不是高端GPU。)
7 浮點(diǎn)數(shù)的能效——FPGA與GPU的比較
許多高性能計(jì)算應(yīng)用,如深度學(xué)習(xí),通常依賴于浮點(diǎn)運(yùn)算,GPU在這方面表現(xiàn)出色。過(guò)去,F(xiàn)PGA在浮點(diǎn)計(jì)算方面效率相對(duì)較低,因?yàn)樾枰獜倪壿媺K組裝浮點(diǎn)單元,這消耗了大量資源。
像Arria 10和Stratix 10這樣的新一代FPGA在FPGA結(jié)構(gòu)中集成了浮點(diǎn)單元,使其在浮點(diǎn)計(jì)算方面更為出色。那么,添加浮點(diǎn)單元是否使FPGA在能效上對(duì)浮點(diǎn)計(jì)算更有吸引力?它們比GPU更節(jié)能嗎?
把最先進(jìn)的GPU與最先進(jìn)的FPGA進(jìn)行比較。目前市面上最快的專業(yè)GPU是Tesla V100,理論最大性能為15 TFLOPS(每秒兆浮點(diǎn)運(yùn)算,是測(cè)量浮點(diǎn)性能的標(biāo)準(zhǔn)單位),功耗約為250瓦。其中一款最好的FPGA開(kāi)發(fā)板是Nallatech 520C,它采用Altera/Intel的新一代Statix 10芯片。該開(kāi)發(fā)板的理論最大性能為9.2 TFLOPS,功耗約為225瓦。
如果把這兩個(gè)設(shè)備在能效上進(jìn)行比較,GPU似乎更節(jié)能,在理論上能達(dá)到56 GFLOP/W(每瓦吉浮點(diǎn)運(yùn)算,是測(cè)量浮點(diǎn)性能能效的標(biāo)準(zhǔn)單位),而FPGA僅能達(dá)到40.9 GFLOP/W。因此,如果要購(gòu)買新的浮點(diǎn)數(shù)硬件,并且需要主機(jī)電腦,那么在這種粗略的比較中,選擇GPU可能更合適。
然而,這種差距很小,并且有可能新一代基于Stratix 10的FPGA開(kāi)發(fā)板在浮點(diǎn)計(jì)算方面比Volta更節(jié)能。此外,上述比較是在不同工藝節(jié)點(diǎn)下進(jìn)行的,因?yàn)門(mén)esla V100采用了12納米工藝,而Stratix 10則采用了較舊的14納米工藝。
盡管比較表明,如果需要能效較高的浮點(diǎn)計(jì)算,最好選擇GPU,但并不能說(shuō)明GPU在浮點(diǎn)計(jì)算方面天生更節(jié)能。目前,GPU在浮點(diǎn)能效方面占據(jù)優(yōu)勢(shì),但這種情況在不久的將來(lái)可能會(huì)發(fā)生改變。
FPGA的能效標(biāo)簽:取決于應(yīng)用領(lǐng)域
如果不需要主機(jī)電腦,那么需要比較帶有主機(jī)的高端GPU和不帶主機(jī)的高端FPGA。如果使用上述比較中的相同數(shù)據(jù),那么帶有主機(jī)的GPU和不帶主機(jī)的FPGA在能效上完全相同,前提是主機(jī)消耗116.7瓦(在多GPU配置中,每個(gè)GPU消耗的電量)?,F(xiàn)代主機(jī)的功耗在50到250瓦之間,這使得FPGA更具競(jìng)爭(zhēng)力。
在某些領(lǐng)域,很難繞開(kāi)FPGA。在軍事應(yīng)用中,如導(dǎo)彈制導(dǎo)系統(tǒng),F(xiàn)PGA由于其低延遲而被使用。在射電天文學(xué)應(yīng)用中,F(xiàn)PGA的專用輸入/輸出對(duì)于處理大量數(shù)據(jù)有重要作用。在加密貨幣挖掘中,F(xiàn)PGA的定點(diǎn)和邏輯運(yùn)算能效優(yōu)勢(shì)明顯。
來(lái)源: 本文轉(zhuǎn)載自FPGA研究院 公眾號(hào)
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
20069瀏覽量
242878 -
FPGA
+關(guān)注
關(guān)注
1650文章
22207瀏覽量
626957 -
集成電路
+關(guān)注
關(guān)注
5441文章
12323瀏覽量
371253 -
gpu
+關(guān)注
關(guān)注
28文章
5036瀏覽量
133758
原文標(biāo)題:對(duì)比CPU和GPU,F(xiàn)PGA優(yōu)勢(shì)、劣勢(shì)、應(yīng)用全解析
文章出處:【微信號(hào):FPGA研究院,微信公眾號(hào):FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ThinkPad T41拆解:帶你全面了解ThinkPad

一文全面了解linux相關(guān)知識(shí)
大家有全面轉(zhuǎn)型使用國(guó)產(chǎn)FPGA的么?
全面、高效的了解電子行業(yè)最新信息
CC2540的應(yīng)用是否需要全面了解藍(lán)牙協(xié)議
FPGA怎么學(xué)?學(xué)習(xí)FPGA需要了解什么?
了解開(kāi)發(fā)套件工具是如何幫助加速FPGA設(shè)計(jì)
了解FPGA的芯片內(nèi)部資源:IO是什么

評(píng)論