CPU, GPU, FPGA計算能力

NO IMAGE

背景

現在AI火熱,帶動了異構計算的發展,讓GPU, FPGA這類加速晶片從輔助裝置逐步進入了主流計算裝置的行列,開始挑戰傳統CPU的絕對統治地位,那麼我們為什麼經常聽說GPU, FPGA相對於CPU計算能力要強的多,原因是為什麼呢?

晶片設計

CPU在晶片設計上,絕大部分空間其實並不屬於ALU(算數邏輯單元)。CPU作為通用處理器,除了滿足計算要求,為了更好的響應人機互動的應用,它要能處理複雜的條件和分支,以及任務之間的同步協調,所以晶片上需要很多空間來實現分支預測與優化(control), 儲存各種狀態(cache)以降低任務切換時的延時。

GPU則走了一個極端,它在晶片設計上突出計算輸出最大化,幾乎將所有的空間都給了ALU,所以對於AI,HPC,圖形渲染這樣簡單粗暴的浮點矩陣運算,GPU的優勢肯定就非常明顯了。

峰值浮點

CPU

一顆E5 2680 V4, 14核心,3G左右頻率,那麼其峰值浮點能力為3X14x32(32是V4處理器支援SIMD的速算因子,即一個時鐘週期內能做32次浮點計算)= 1.34Tflops.

Intel V3 Haswell架構處理器,支援AVX256, 即每個時鐘週期能做(256/32)x2=16次單精度浮點,x2是因為每個時鐘CPU能同時發出一次加法和一次乘法指令。

Intel V4 Broadwell支援FMA(融合乘加)指令,即a*b c, 所以再x2=32。

Intel V5 Skylake支援AVX512, 所以再x2=64。

GPU

比如是Tesla P100, 3584個cuda core, 核心頻率大概是1.5G左右,那麼其峰值浮點能力為3584×1.5×2(2是GPU的FMA速算因子)= 10Tflops左右,即使是便宜多的Tesla P4, 峰值浮點也能到5Tflops。

FPGA

比如xilinx的ultrascale, 我查了下,它有1,440 個DSP based加法器,頻率為 0.5G,還有6,743個Logic based的加法器,頻率為0.6G,1440×0.5 6743×0.6=4.5Tflops。

價格上看, 大概可以認為,E5 2680 V4 = Tesla P4 = xilinx ultrascale,所以很清楚了。

轉自: