CPU TFLOPS 計算


CPU TFLOPS 計算

 

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

深度學習任務是一個計算密集型任務,所以很關注計算設備的算力指標,因為目前深度學習還是以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可以處理個單精度浮點乘加操作。所以:

frequency可以通過查spec得到,如下:

 

Alt text
所以單socket的峰值TFLOPS為:

所以一個dual-socket Skylake 8180的node的峰值TFLOPS應為:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM