轉載:算力計算

一、GOPS與FLOPS
1.1 FLOPS
FLOPS定義

是“每秒所執行的浮點運算次數”(floating-point operations per second)的縮寫。它常被用來估算電腦的執行效能,尤其是在使用到大量浮點運算的科學計算領域中。正因爲FLOPS字尾的那個S,代表秒,而不是複數,所以不能省略掉。

在這裏所謂的“浮點運算”,實際上包括了所有涉及小數的運算。這類運算在某類應用軟件中常常出現,而它們也比整數運算更花時間。現今大部分的處理器中,都有一個專門用來處理浮點運算的“浮點運算器”(FPU)。也因此FLOPS所量測的,實際上就是FPU的執行速度。而最常用來測量FLOPS的基準程式(benchmark)之一,就是Linpack。
FLOPS換算

一個MFLOPS(megaFLOPS)等於每秒一百萬(=10^6)次的浮點運算,

一個GFLOPS(gigaFLOPS)等於每秒十億(=10^9)次的浮點運算,

一個TFLOPS(teraFLOPS)等於每秒一萬億(=10^12)次的浮點運算,(1太拉)

一個PFLOPS(petaFLOPS)等於每秒一千萬億(=10^15)次的浮點運算,
前標的十進制與二進制

此處存在疑問,從M到G再到T,到底是1024近似爲1000,還是採用二進制的乘以1024,還是確實爲十進制的1000

傾向於FLOP的前標與內存一樣,是以二進制算,每進一級是1024爲單位的。

但是1024^3是1073741824,可以近似爲10^9。所以採用10^3來近似1024問題不大。
顯卡FLOPS值

顯卡根據價格算力從0.7TFLOPS/s到10TFLOPS/s不等。

1.2 GOPS

OPS與FLOPS類似,只不過OPS一個是操作次數,FLOPS一個是浮點操作次數。
1.3 FLOP與GOPS之間的換算

(FLOP與GOPS之間的換算需要查相關資料,後續查找資料給出)

不確定的看法是OPS是操作數量,FLOPS爲浮點操作數量,兩者可近似於相等,FLOPS比OPS稍大。
二、常規神經網絡算力

據韓松畢業論文EFFICIENT METHODS AND HARDWARE FOR DEEP LEARNING  P15
2.1 AlexNet

對於AlexNet處理224*224的圖像,需要1.4GOPS
2.2 ResNet-152

對於224*224的圖像,ResNet-152需要22.6GOPS

例如對於 1080p圖像(像素點個數1920*1280) 的8路 幀率爲30FPS的圖像。

22.6GOPS*30FPS*8路*(1920*1280/224^2)=265Teraop/sec

這個數量級爲30張高端顯卡。
2.3 EIE算力

EIE在稀疏網絡上可達102GOPS/s,相當於同等級非稀疏網絡的1TGOPS/s

2.4 一些層的算力

注意這裏是剪枝後的FLOP,之前的FLOP可能要乘以12

這裏不懂爲什麼韓松不把原來的FLOP值貼出來而是隻貼剪枝後的FLOP

 

 

Table 3.6: Pruning GoogleNet reduces the number of weights by 3.5x and computation by 5x.

 三、FPGA平臺上算力評估
3.1 zynqNet算力評估

拆分爲卷積的MACC操作的次數152,731,648 ,爲10^8數量級(0.1G),7z035平臺上時間約爲2s

假定MACC操作9乘法8加法,算作17FLOP,zynqNet總算量2,596,438,016 FLOP,即2.59GFLOPS

算力1.3GFLOPS/s(韓松EIE爲102GOPS/s)
3.2 MTCNN算量

MACC次數爲85,176,568次到43,543,288次不等,10^7數量級(10M),每幀運算量0.74GOPS或1.448GOPS

按照zynqNet的算力約 0.9-1.75FPS

相關內容:

深鑑科技DNNDK概覽
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章