處理器的計算能力如何計算

咱們經常使用雙精度浮點運算能力衡量一個處理器的科學計算的能力,就是處理64bit小數點浮動數據的能力
  • 支持AVX2的處理器的單指令的長度是256bit,每一個intel核心假設包含2個FMA,一個FMA一個時鐘週期能夠進行2次乘或者加的運算,那麼這個處理器在1個核心1個時鐘週期能夠執行256bit*2FMA*2M/A/64=16次浮點運算,也稱爲16FLOPs,就是Floating Point Operations Per Second;
  • 支持AVX512的處理器的單指令的長度是512Bit,每一個intel核心假設包含2個FMA,一個FMA一個時鐘週期能夠進行2次乘或者加的運算,那麼這個處理器在1個核心1個時鐘週期能夠執行512bit*2FMA*2M/A/64=32次浮點運算,也稱爲32FLOPs,
這就是說理論上後者的運算能力實際上是前者的一倍,可是實際中不可能達到,由於進行更長的指令運算,流水線之間更加密集,但核心頻率會下降;致使整個處理器的能力下降;
一個處理器的計算能力和核心的個數,核心的頻率,核心單時鐘週期的能力三個因素有關係
  • 例如:如今intel purley platform的旗艦skylake 8180是28Core@2.5GHZ,支持AVX512,其理論雙精度浮點性能是:28Core*2.5GHZ*32FLOPs/Cycle=2240GFLPs=2.24TFLOPs
  • 例如:如今intel purley platform的旗艦cascade lake 8280是28Core@2.7GHZ,支持AVX512,其理論雙精度浮點性能是:28Core*2.7GHZ*32FLOPs/Cycle=2419.2GFLPs=2.4192TFLOPs
 
 
GPU能作的CPU都能作,CPU能作的GPU卻不必定可以作到,GPU通常一個時鐘週期能夠操做64bit的數據,1個核心實現1個FMA。
  • 這個GPU的計算能力的單元是:64bit*1FMA*2M/A/64bit=2FLOPs/Cycle
GPU的計算能力也是同樣和核心個數,核心頻率,核心單時鐘週期能力三個因素有關。
可是架不住GPU的核心的數量多呀
  • 例如:對如今nvidia tesla class 的pascal旗艦 p100而言,是1792core@1.328GHZ,其理論的雙精度浮點性能是:1792Core*1.328GHZ*2FLOPs/Cycle=4759.552GFLOPs=4.7TFLOPs
  • 例如:對如今nvidia tesla class 的volta旗艦 v100而言,是2560Core@1.245GHX,其理論的雙精度浮點性能是:2560Core*1.245GHZ*2FLOPs/Cycle=6374.4GFLOPs=6.3TFLOPs
 
 
如今ML繁榮的時代,對64bit長度的浮點運算需求不是那麼的大,反而是32bit或者16bit的浮點運算的需求比較大。
所以nvidia 最新的tesla一直在強調單精度甚至半精度,turing就是這樣的。
intel爲了加速這些計算,也在其處理器中實現了一些加速低精度運算的指令。
相關文章
相關標籤/搜索