處理器和GPU的計算能力如何計算的?

(一) CPU的浮點計算性能公式

我們常用雙精度浮點運算能力衡量一個處理器的科學計算的能力,就是處理64bit小數點浮動數據的能力


處理器和GPU的計算能力如何計算的?的圖1

intel的最新cpu支持高級矢量指令集()X2、()X512, 其中X2的處理器的單指令的長度是256bit,每顆intelCPU包含2個FMA,一個FMA一個時鐘周期可以進行2次乘或者加的運算,那么這個處理器在1個核心1個時鐘周期可以執行256bit*2FMA*2M/A/64=16次浮點運算,也稱為16FLOPs,就是Floating Point Operations Per Second;
處理器和GPU的計算能力如何計算的?的圖2

支持(   )X512的處理器的單指令的長度是512Bit,每個intel核心假設包含2個FMA,一個FMA一個時鐘周期可以進行2次乘或者加的運算,那么這個處理器在1個核心1個時鐘周期可以執行512bit*2FMA*2M/A/64=32次浮點運算,也稱為32FLOPs,

處理器和GPU的計算能力如何計算的?的圖3
就是說理論上后者的運算能力其實是前者的一倍,但是實際中不可能達到,因為進行更長的指令運算,流水線之間更加密集,但核心頻率會降低;導致整個處理器的能力降低;


一個處理器的計算能力和核心的個數,核心的頻率,核心單時鐘周期的能力三個因素有關系

 

例如:現在intel purley platform的旗艦skylake 8180是28Core@2.5GHZ,支持()X512,其理論雙精度浮點性能是:28Core*2.5GHZ*32FLOPs/Cycle=2240GFLPs=2.24TFLOPs

例如:現在intel purley platform的旗艦cascade lake Xeon Platinum 8280是28核@2.7GHZ,支持( )X512,其理論雙精度浮點性能是:28Core*2.7GHZ*32FLOPs/Cycle=2419.2GFLPs=2.4192TFLOPs

 但是還是要注意并不是所有的處理器都有支持()X512的指令集,也并不是每個支持處理器都有2個FMA的運算單元。
 
(二) GPU的浮點性能計算公式

處理器和GPU的計算能力如何計算的?的圖4

GPU能做的CPU都能做,CPU能做的GPU卻不一定能夠做到,GPU一般一個時鐘周期可以操作64bit的數據,1個核心實現1個FMA。
這個GPU的計算能力的單元是:64bit*1FMA*2M/A/64bit=2FLOPs/Cycle
GPU的計算能力也是一樣和核心個數,核心頻率,核心單時鐘周期能力三個因素有關。
但是架不住GPU的核心的數量多呀

處理器和GPU的計算能力如何計算的?的圖5

例如:對現在nvidia 的pascal架構超算卡--- Tesla P100,是1792核@1.328GHz,其理論的雙精度浮點性能是:1792Core*1.328GHZ*2FLOPs/Cycle=4759.552GFLOPs=4.7TFLOPs

例如:對現在nvidia 的Volta架構的超算卡---Tesla V100,是2560核@1.245GHz,其理論的雙精度浮點性能是:2560Core*1.245GHZ*2FLOPs/Cycle=6374.4GFLOPs=6.3TFLOPs
 
 
現在ML繁榮的時代,對64bit長度的浮點運算需求不是那么的大,反而是32bit或者16bit、8bit INT、4bit INT的運算需求比較大。
因此nvidia 最新的tesla一直在強調單精度甚至半精度,turing就是這樣的。
intel為了加速這些計算,也在其處理器中實現了一些加速低精度運算的指令。
 

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2