我知道,我對(duì)與電子有關(guān)的所有事情都很著迷,但不論從哪個(gè)角度看,今天的現(xiàn)場(chǎng)可編程門陣列(FPGA),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個(gè)智能時(shí)代,在這個(gè)領(lǐng)域,想擁有一技之長(zhǎng)的你還沒(méi)有關(guān)注FPGA,那么世界將拋棄你,時(shí)代將拋棄你。
從幾個(gè)方面來(lái)介紹一下GPU和FPGA。
從峰值性能來(lái)說(shuō),GPU(10Tflops)遠(yuǎn)遠(yuǎn)高于FPGA(<1TFlops)。GPU上面成千上萬(wàn)個(gè)core同時(shí)跑在GHz的頻率上還是非常壯觀的,最新的GPU峰值性能可達(dá)10TFlops以上。GPU的架構(gòu)經(jīng)過(guò)仔細(xì)設(shè)計(jì)(例如使用深度流水線,retiming等技巧),在電路實(shí)現(xiàn)上是基于標(biāo)準(zhǔn)單元庫(kù)而在critical path上可以用手工定制電路,甚至在必要的情形下可以讓半導(dǎo)體fab依據(jù)設(shè)計(jì)需求微調(diào)工藝制程,因此可以讓許多core同時(shí)跑在非常高的頻率。相對(duì)而言,F(xiàn)PGA首先設(shè)計(jì)資源受到很大的限制,例如GPU如果想多加幾個(gè)core只要增加芯片面積就行,但FPGA一旦你型號(hào)選定了邏輯資源上限就確定了(浮點(diǎn)運(yùn)算在FPGA里會(huì)占用很多資源)。而且,F(xiàn)PGA里面的邏輯單元是基于SRAM-查找表,其性能會(huì)比GPU里面的標(biāo)準(zhǔn)邏輯單元差好多。最后,F(xiàn)PGA的布線資源也受限制(有些線必須要繞很遠(yuǎn)),不像GPU這樣走ASIC flow可以隨意布線,這也會(huì)限制性能。
除了芯片性能外,GPU相對(duì)于FPGA還有一個(gè)優(yōu)勢(shì)就是內(nèi)存接口。GPU的內(nèi)存接口(傳統(tǒng)的GDDR,最近更是用上了HBM和HBM2)的帶寬遠(yuǎn)好于FPGA的傳統(tǒng)DDR接口,而眾所周知服務(wù)器端機(jī)器學(xué)習(xí)算法需要頻繁訪問(wèn)內(nèi)存。
但是從靈活性來(lái)說(shuō),F(xiàn)PGA遠(yuǎn)好于GPU。FPGA可以根據(jù)特定的應(yīng)用去編程硬件(例如如果應(yīng)用里面的加法運(yùn)算非常多就可以把大量的邏輯資源去實(shí)現(xiàn)加法器),但是GPU一旦設(shè)計(jì)完那就沒(méi)法改動(dòng)了,沒(méi)法根據(jù)應(yīng)用去調(diào)整硬件資源。目前機(jī)器學(xué)習(xí)大多數(shù)適合使用SIMD架構(gòu)(即只需一條指令可以平行處理大量數(shù)據(jù)),因此用GPU很適合。但是有些應(yīng)用是MISD(即單一數(shù)據(jù)需要用許多條指令平行處理,微軟在2014年ISCA paper里面就舉了一個(gè)MISD用于并行提取feature的例子),這種情況下用FPGA做一個(gè)MISD的架構(gòu)就會(huì)比GPU有優(yōu)勢(shì)。不過(guò)FPGA的編程對(duì)于程序員來(lái)說(shuō)并不容易,所以為了能讓機(jī)器學(xué)習(xí)程序員能方便地使用FPGA往往還需要在FPGA公司提供的編譯器基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),這些都是只有大公司才能做。
FPGA實(shí)現(xiàn)的機(jī)器學(xué)習(xí)加速器在架構(gòu)上可以根據(jù)特定應(yīng)用優(yōu)化所以比GPU有優(yōu)勢(shì),但是GPU的運(yùn)行速度(>1GHz)相比FPGA有優(yōu)勢(shì)(~200MHz)。
所以,對(duì)于平均性能,看的就是FPGA加速器架構(gòu)上的優(yōu)勢(shì)是否能彌補(bǔ)運(yùn)行速度上的劣勢(shì)。如果FPGA上的架構(gòu)優(yōu)化可以帶來(lái)相比GPU架構(gòu)兩到三個(gè)數(shù)量級(jí)的優(yōu)勢(shì),那么FPGA在平均性能上會(huì)好于GPU。例如,百度在HotChips上發(fā)布的paper顯示,GPU的平均性能相比FPGA在矩陣運(yùn)算等標(biāo)準(zhǔn)batch data SIMD bench上遠(yuǎn)好于FPGA;但是在處理服務(wù)器端的少量多次處理請(qǐng)求(即頻繁請(qǐng)求但每次請(qǐng)求的數(shù)據(jù)量和計(jì)算量都不大)的場(chǎng)合下,平均性能會(huì)比GPU更好。
功耗方面,雖然GPU的功耗(200W)遠(yuǎn)大于FPGA的功耗(10W),但是如果要比較功耗應(yīng)該比較在執(zhí)行效率相同時(shí)需要的功耗。如果FPGA的架構(gòu)優(yōu)化能做到很好以致于一塊FPGA的平均性能能接近一塊GPU,那么FPGA方案的總功耗遠(yuǎn)小于GPU,散熱問(wèn)題可以大大減輕。反之,如果需要二十塊FPGA才能實(shí)現(xiàn)一塊GPU的平均性能,那么FPGA在功耗方面并沒(méi)有優(yōu)勢(shì)。
能效比的比較也是類似,能效指的是完成程序執(zhí)行消耗的能量,而能量消耗等于功耗乘以程序執(zhí)行的時(shí)間。雖然GPU的功耗遠(yuǎn)大于FPGA的功耗,但是如果FPGA執(zhí)行相同程序需要的時(shí)間比GPU長(zhǎng)幾十倍,那FPGA在能效比上就沒(méi)有優(yōu)勢(shì)了;反之如果FPGA上實(shí)現(xiàn)的硬件架構(gòu)優(yōu)化得很適合特定的機(jī)器學(xué)習(xí)應(yīng)用,執(zhí)行算法所需的時(shí)間僅僅是GPU的幾倍或甚至于接近GPU,那么FPGA的能效比就會(huì)比GPU強(qiáng)。
-
FPGA
+關(guān)注
關(guān)注
1624文章
21539瀏覽量
600518 -
gpu
+關(guān)注
關(guān)注
27文章
4632瀏覽量
128446
原文標(biāo)題:談?wù)凣PU與FPGA的一些看法
文章出處:【微信號(hào):ALIFPGA,微信公眾號(hào):FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論