有关FLOPS的定义与计算

有关FLOPS的定义与计算,第1张

FLOPS(即“每秒 浮点运算 次数”,“每秒峰值速度”),是“每秒所执行的 浮点 运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大拍历量浮点运算的 科学计算 领域中。正因为FLOPS字尾的那个S,代表秒,而不是 复数 ,所以不能省略掉。

一个 MFLOPS (megaFLOPS)等于每秒一佰万(=10^6)次的 浮点运算 ,

一个 GFLOPS (gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算,

一个 TFLOPS (teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算,(1太拉)

一个 PFLOPS ( petaFLOPS )等于每秒一千万亿(=10^15)袭铅搜次的浮点运算,

一个EFLOPS( exaFLOPS )等于每秒一佰京(=10^18)次的浮点运激拆算。

浮点计算峰值=处理器个数×处理器主频×每秒可进行的最高浮点运算次数(FMAD,乘加指令)

如下图所示:G80以及至今所有nvidia GPU的流处理器内部有两个ALU单元。

流处理器工作频率 x 流处理器数量 x 每流处理器的FLOPs数量(2个)=总数

每流处理器的FLOPs数量 == 指令吞吐率 = 2

sp可以做一个乘法一个加法

kepler:2880*0.745*2=4290Gflops频率无需x2 sp频率和核心频率相同

fermi: 512*0.650*2*2=1330Gflops 频率需x2 sp频率是核心频率的2倍

CUDA 中FLOPS的计算方法如下:

(1)统计您每个线程的计算次数

(2)将此值乘以您的线程总数

(3)统计出总时间(利用profiler或者自己计时),将2中的值(所有线程的计算次数)除以计算时间,您将得到每秒的计算次数。

(4)因为3中的值往往较大,所以大家一般使用GFlops来衡量(Giga float operations per second),

1G次运算 = 10 ^ 9次方次运算。

参考:

以下均不考虑activation function。

Ci=input channel, k=kernel size, HW=output feature map size, Co=output channel.

2是因为一个MAC算2个operations。不考虑bias时有-1,有bias时没有尘信-1。

上面派稿轮针对一个input feature map,没考虑batch size。

I=input neuron numbers, O=output neuron numbers,2是因为一敬凳个MAC算2个operations。不考虑bias时有-1,有bias时没有-1。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12524587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存