影響FPGA計算性能的幾大因素

影響FPGA計算性能的幾大因素

ID:42903784

大?。?9.80 KB

頁數(shù):7頁

時間:2019-09-23

影響FPGA計算性能的幾大因素_第1頁
影響FPGA計算性能的幾大因素_第2頁
影響FPGA計算性能的幾大因素_第3頁
影響FPGA計算性能的幾大因素_第4頁
影響FPGA計算性能的幾大因素_第5頁
資源描述:

《影響FPGA計算性能的幾大因素》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、影響FPGA計算性能的幾大因素FPGA?vs.?ASIC專用芯片ASIC的開發(fā)流程是:設(shè)計、驗證、流片、封裝、測試;而FPGA已經(jīng)是做好的芯片,所以不需要流片、封裝、測試。這樣,可以至少節(jié)省四個月的時間。另外ASIC還有可能多次流片才能成功,同步的軟件開發(fā)也需要芯片做好才能完成大部分功能,這些也是時間成本。在量小的時候,F(xiàn)PGA的成本低,量大了之后,ASIC的成本低。FPGA的功耗比ASIC高,因為有很多多余的邏輯,不過比CPU省電,畢竟CPU的多余邏輯更多。相比ASIC,F(xiàn)PGA的調(diào)試比較方便,可以直接燒到FPGA執(zhí)行,也可以用調(diào)試工具抓取芯片里面的信號查看狀態(tài)。FPGA需

2、要跑多快?跟Intel?CPU相比,F(xiàn)PGA的主頻差一個數(shù)量級,一般FPGA芯片時鐘頻率300MHz左右,而IntelCPU可以到3GHz,就是說CPU1秒能做30億次計算,而FPGA只能做3億次,差了10倍。另外FPGA用作可重構(gòu)計算是來加速CPU的,如果和CPU跑一樣快就沒意思了,所以一般要比CPU快5倍才行。FPGA的開發(fā)周期是比較久的,1年甚至2年很正常,在這個過程中,CPU上的軟件算法還在不斷升級,所以有可能FPGA算法設(shè)計的比CPU快,等開發(fā)完,卻發(fā)現(xiàn)CPU上的軟件算法快速迭代,已經(jīng)超過FPGA算法了。這種事還是比較常見的,不只是軟件算法升級,CPU自己也會升級,

3、這些都有可能讓FPGA加速器做了無用功。比如用FPGA做一個數(shù)據(jù)壓縮卡,可是CPU可能就自己帶了一個數(shù)據(jù)壓縮功能,成本還比FPGA卡低,開發(fā)FPGA的人白干一場。阿呆以前就遇到過這種問題,在FPGA里面做了一個AI算法,架構(gòu)設(shè)計的牛逼了點,大家又干的慢了點,兩年完工,再去跟做AI的人一交流,發(fā)現(xiàn)這套算法已經(jīng)是舊的框架了。。。所以,正常來說,F(xiàn)PGA算法加速性能設(shè)計的時候要比CPU快5-10倍才能保證最終做出來的產(chǎn)品是可以實現(xiàn)硬件加速的目標。影響FPGA計算性能的幾大因素1.數(shù)據(jù)并行性對FPGA計算來說,同時處理大量的數(shù)據(jù),同時數(shù)據(jù)之間沒有相互依賴是最好的。這樣,可以有幾百上千

4、個并行計算單元獨立處理幾百上千個數(shù)據(jù),如果數(shù)據(jù)之間有依賴,比如有很多的if?else,就并發(fā)不起來,A必須要等B完成才能執(zhí)行。就跟步騎兵混合軍團出征,如果將軍下令大家要同步進軍,步兵要和騎兵一起沖,騎兵不能跑太快,要等步兵一起走,那這個仗就沒法打了,只能被敵人包餃子。2.數(shù)據(jù)大小和計算復(fù)雜度FPGA并行計算是很多個計算并行執(zhí)行,如果每個計算單元要處理的數(shù)據(jù)太多,同時計算邏輯太復(fù)雜,那么占用的FPGA計算資源就變多了,這樣總的并行單元數(shù)量相應(yīng)減少,性能下降。而且,老司機都知道,計算邏輯太復(fù)雜,在電路上消耗的時間變多,還會導(dǎo)致每個模塊的延遲變長,這樣時鐘頻率也會下降,也會影響到性

5、能。3.流水線計算復(fù)雜的時候,延遲會變長,如果要求計算任務(wù)在一個時鐘周期里完成,那么時鐘周期就變長了,相應(yīng)的頻率降低,性能下降。所以為了提高時鐘頻率,F(xiàn)PGA會采用流水線技術(shù),把復(fù)雜的計算分解成幾段,放到幾個時鐘周期里完成。這樣做的后果就是,計算需要的時間變長了,但是總的性能卻提高了。為什么?阿呆來舉例說明。蛋蛋本來1個小時造1個玩具,一天8小時造8個。后來造玩具改成蛋蛋、小蛋蛋、蛋媽三個人干,任務(wù)分解成三段,每人半小時,1個半小時才能造出玩具,看起來造玩具的時間變長了??墒侨齻€人一天工作總時間3*8=24小時,一天生產(chǎn)24/1.5=16個玩具,產(chǎn)量翻番了。4.靜態(tài)控制邏輯我

6、們寫軟件程序的時候,習慣了給函數(shù)很多參數(shù)作為條件,根據(jù)參數(shù)內(nèi)容執(zhí)行函數(shù)的操作。FPGA做計算就不希望靠參數(shù)內(nèi)容確定怎么計算,而是希望一開始就定好。比如在軟件里面,算個位數(shù)的平方和二位數(shù)的平方差不多,可是到FPGA里面,個位數(shù)需要的計算資源少,二位數(shù)占用的多,一個計算單元要同時支持個位數(shù)和二位數(shù)平方計算就會很占資源,最好是一開始就確定好算哪一種,不要動態(tài)確定。存儲和計算的關(guān)系1.數(shù)據(jù)密集型和計算密集型我們的計算有數(shù)據(jù)密集型和計算密集型兩種,如果計算的次數(shù)多,就是計算密集型,反之,就是IO密集型。比如n×n矩陣乘法,每個數(shù)據(jù)讀和寫都認為是一次IO,讀兩個矩陣的數(shù)據(jù),寫入結(jié)果矩陣的

7、數(shù)據(jù),需要3n2次IO,而計算的次數(shù)是n3,所以是計算密集型。但是n×n矩陣加法,同樣需要3n2次IO,不過計算的的次數(shù)只有n2,屬于IO密集型。2.脈動陣列結(jié)構(gòu)AI的計算往往涉及到矩陣乘法和向量乘法等,所以IO這邊的存儲往往成了性能瓶頸,我們經(jīng)常會看到,為了解決“存儲墻”問題,AI芯片里面(例如GoogleTPU)會采用脈動陣列結(jié)構(gòu),盡量做到IO進來的數(shù)據(jù)重用,把IO密集型轉(zhuǎn)化為計算密集型。如下圖,左側(cè)和上方都有數(shù)據(jù)進來,就跟心跳一樣,不斷有血液流進來,但是內(nèi)部有計算陣列,不會浪費中間產(chǎn)生的數(shù)據(jù),所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。