我們常用雙精度浮點運算能力衡量一個處理器的科學計算的能力,就是處理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是[email protected],支援AVX512,其理論雙精度浮點效能是:28Core*2.5GHZ*32FLOPs/Cycle=2240GFLPs=2.24TFLOPs
例如:現在intel purley platform的旗艦cascade lake 8280是[email protected],支援AVX512,其理論雙精度浮點效能是:28Core*2.7GHZ*32FLOPs/Cycle=2419.2GFLPs=2.4192TFLOPs
但是還是要注意並不是所有的處理器都有支援AVX512的指令集,也並不是每個支援處理器都有2個FMA的運算單元。
GPU能做的CPU都能做,CPU能做的GPU卻不一定能夠做到,GPU一般一個時鐘週期可以操作64bit的資料,1個核心實現1個FMA。
這個GPU的計算能力的單元是:64bit*1FMA*2M/A/64bit=2FLOPs/Cycle
GPU的計算能力也是一樣和核心個數,核心頻率,核心單時鐘週期能力三個因素有關。
但是架不住GPU的核心的數量多呀
例如:對現在nvidia tesla class 的pascal旗艦 p100而言,是[email protected],其理論的雙精度浮點效能是:1792Core*1.328GHZ*2FLOPs/Cycle=4759.552GFLOPs=4.7TFLOPs
例如:對現在nvidia tesla class 的volta旗艦 v100而言,是[email protected],其理論的雙精度浮點效能是:2560Core*1.245GHZ*2FLOPs/Cycle=6374.4GFLOPs=6.3TFLOPs
現在ML繁榮的時代,對64bit長度的浮點運算需求不是那麼的大,反而是32bit或者16bit的浮點運算的需求比較大。
因此nvidia 最新的tesla一直在強調單精度甚至半精度,turing就是這樣的。
intel為了加速這些計算,也在其處理器中實現了一些加速低精度運算的指令。
我們常用雙精度浮點運算能力衡量一個處理器的科學計算的能力,就是處理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是[email protected],支援AVX512,其理論雙精度浮點效能是:28Core*2.5GHZ*32FLOPs/Cycle=2240GFLPs=2.24TFLOPs
例如:現在intel purley platform的旗艦cascade lake 8280是[email protected],支援AVX512,其理論雙精度浮點效能是:28Core*2.7GHZ*32FLOPs/Cycle=2419.2GFLPs=2.4192TFLOPs
但是還是要注意並不是所有的處理器都有支援AVX512的指令集,也並不是每個支援處理器都有2個FMA的運算單元。
GPU能做的CPU都能做,CPU能做的GPU卻不一定能夠做到,GPU一般一個時鐘週期可以操作64bit的資料,1個核心實現1個FMA。
這個GPU的計算能力的單元是:64bit*1FMA*2M/A/64bit=2FLOPs/Cycle
GPU的計算能力也是一樣和核心個數,核心頻率,核心單時鐘週期能力三個因素有關。
但是架不住GPU的核心的數量多呀
例如:對現在nvidia tesla class 的pascal旗艦 p100而言,是[email protected],其理論的雙精度浮點效能是:1792Core*1.328GHZ*2FLOPs/Cycle=4759.552GFLOPs=4.7TFLOPs
例如:對現在nvidia tesla class 的volta旗艦 v100而言,是[email protected],其理論的雙精度浮點效能是:2560Core*1.245GHZ*2FLOPs/Cycle=6374.4GFLOPs=6.3TFLOPs
現在ML繁榮的時代,對64bit長度的浮點運算需求不是那麼的大,反而是32bit或者16bit的浮點運算的需求比較大。
因此nvidia 最新的tesla一直在強調單精度甚至半精度,turing就是這樣的。
intel為了加速這些計算,也在其處理器中實現了一些加速低精度運算的指令。