主頻只是影響計算速度的一個因素,并不是全部。在執行一些計算密集型的任務場景中,FPGA的計算速度是更快的,目前FPGA作為CPU的協處理器已經廣泛應用在Intel、AMD等公司的產品中。
CPU、GPU、和FPGA的比較
桌面端的CPU為馮諾依曼結構,從上圖可以看出,其基本組成為控制器,Cache,和ALU。而計算單元ALU在CPU中的占比不大,所以它的并行計算能力有限。
中間的為GPU,綠色的計算單元占了絕大部分,所以并行計算能力很強。
弱點是控制能力很弱,Cache小,為了保證計算能力,就需要大量的高速DDR保證數據吞吐率。
右側為FPGA,包含可編程的I/O、DSP、memory、PCIE等,因為大量存儲單元的存在,FPGA在做計算的時候可以直接從內部存儲單元讀取數據。
推薦一個國外的FPGA學習網站 -- fpga4fun,里邊有FPGA的介紹及26個實戰項目及實現代碼,非常適合入門學習!
https://www.fpga4fun.com/
正因為CPU、GPU、和FPGA在結構上的不同,也讓他們在實際應用層面有所側重。
目前主流的方案是把CPU、GPU和FPGA都集成在一個SoC中,通過片內總線互聯。在執行并行計算的時候,比如進行圖像處理,FPGA的優勢就體現出來了,通過協作分工,使芯片的工作效率最大化。
目前的3D封裝以及chiplet等技術為這樣的組合提供了可實現性。
為什么FPGA計算速度會比CPU更快?
在執行大量的運算場景中,FPGA相比GPU的核心優勢在于低延遲。FPGA比CPU延遲低,在本質上是體系結構的區別。FPGA同時擁有流水線并行和數據并行,而CPU幾乎只有數據并行,雖然也會才有流水線設計,但深度受限。因此,FPGA 更適合做需要低延遲的流式處理,GPU 更適合做大批量同構數據的處理。
舉個例子:
我們有四個全加器,每一個的進為輸出連接到下一個的進位輸入,這樣實現的加法器被稱作行波進位加法器(Ripple-Carry Adder, RCA)。其特點為:
結構特點:低位全加器的Cout連接到高一位全加器Cin
優點:電路布局簡單,設計方便
缺點:高位的運算必須等待低位的運算完成
我們來看一下其關鍵路徑的延遲:
總延遲時間:(T + T)*4 + T = 9T,推廣到n位,總時間為(2n + 1)*T。
每一個全加器計算的時候必須等待它的進位輸入產生后才能計算,所以四個全加器并不是同時進行計算的,而是一個一個的串行計算。這樣會造成較大的延遲。
我們把這個電路改進一下:提前計算出“進位信號”,對進位信號進行分析。
這樣我們就得到了一個:超前進位加法器(Carry-Lookahead Adder, CLA)
其中,C1、C2、C3、C4都由下面的電路計算好,需要3級門延遲,然后在全加器中關鍵路徑上還有1級延遲
所以,總共有4級門延遲。
如果采用這種完全的超前進位,理論上的門延遲都是4級門延遲。
實際電路過于復雜,難以實現(C31需要32位的與門和或門!)
通常的方法:采用多個小規模的超前進位加法器拼接而成,例如,用4個8-bit的超前進位加法器連接成32-bit加法器。
所以我們需要更多的計算位寬或者更大的數組,或者矩陣的運算的時候,我們使用FPGA的優勢就體現出來。再多的計算,也就是放置更多的硬件邏輯資源。
FPGA對CPU加速場景
在一些特定的應用場景下,單獨使用CPU和CPU+FPGA兩種方案所需處理時間的對比,可見FPGA對CPU的加速效果非常明顯,甚至比單獨使用CPU高出1~2個數量級!
FPGA的缺點
FPGA也是有缺點的,其中之一便是開發周期長。其需要對特定的應用編寫特定的FPGA。只要干的事情稍有不同,一般來說FPGA代碼就要重新寫一遍或者是至少要修改很多東西。如果要做的事情復雜、重復性不強,就會占用大量的邏輯資源,其中的大部分處于閑置狀態。
不過,Chiplet的應用對對FPGA的開發周期有一定的優化,以下是傳統FPGA開發的周期和應用chiplet的開發周期對比:
未來的方向
在現在的SoC設計中,要充分考慮不同模塊的特點,FPGA 和 CPU 協同工作,充分發揮各自的長處,局部性和重復性強的歸 FPGA,復雜的歸 CPU。從而達到整個系統算力的最優化。
在未來,FPGA會作為協處理器和CPU、GPU共存一段時間,其主要提供以下三方面的能力:
能夠提供專門的硬件加速,實現各種應用中需要的關鍵處理功能。
FPGA設計在性能上非常靈活,使用流水線和并行結構,適應對性能的需求變化。
協處理器能為主處理器和系統存儲器提供寬帶,低延遲接口。
目前,英特爾,AMD,賽靈思等公司都把FPGA作為協處理器集成在SoC中作為實際應用的硬件加速解決方案,這樣的設計也使得CPU和FPGA在未來的一段時間內會共存,互相配合,賦能各種計算場景。
編輯:jq
-
FPGA
+關注
關注
1626文章
21678瀏覽量
602040 -
cpu
+關注
關注
68文章
10829瀏覽量
211196 -
gpu
+關注
關注
28文章
4703瀏覽量
128729
原文標題:為什么CPU主頻一般都比FPGA快,但是卻說FPGA可以幫助CPU加速?
文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論