CPU TFLOPS 計算

CPU TFLOPS 計算node

 

姚偉峯
yaoweifeng0301@126.com]
http://www.cnblogs.com/Matrix_Yao/socket

深度學習任務是一個計算密集型任務,因此很關注計算設備的算力指標,由於目前深度學習仍是以float32爲主流,因此落實到具體指標,就變成了你們都很關心TFLOPS(Tera FLoat point OPerations per Second),這裏,浮點操做指的就是浮點乘法和加法操做。這個在GPU上是明碼寫在spec裏能夠查的,但CPU目前並不會在spec中暴露TFLOPS指標。一種方法能夠經過跑BLAS的benchmark來測量的,但這個一是須要必定的操做成本,二是受軟件優化的影響(因此,若是出了問題就容易不知道這是硬件能力不行仍是軟件優化沒到位)。須要一個對硬件能力的直接估計。
在深度學習任務中,計算量的絕大部分是由協處理器(co-processor)來完成的(如SSE,AVX2,AVX-512),更具體地,是由FMA(Fused Multiply-Add)單元完成的。因此對CPU的TFLOPS估計通常能夠經過如下公式來達成:
學習

 

FMA作了啥?
FMA指令裏作了如下操做。這裏這些向量的長度由AVX寄存器長度決定,好比AVX-512就是16個float。 FMA每一個clock能夠作完一個如下操做,這裏都是長度爲16的向量。
優化

 

舉個栗子
Xeon Skylake 8180,一個socket有28個core,每一個core有一個AVX-512協處理器,每一個AVX-512協處理器配有2個FMA,每一個FMA每clock能夠處理個單精度浮點乘加操做。因此:
spa

frequency能夠經過查spec獲得,以下:

 

Alt text
因此單socket的峯值TFLOPS爲:
blog

因此一個dual-socket Skylake 8180的node的峯值TFLOPS應爲:
相關文章
相關標籤/搜索