CUDA nvprof浮点数操作数

时间:2014-05-02 00:16:49

标签: cuda profiling

我很好奇为什么分析器报告的失败次数不等于ADD,MUL和FMA的总和?

Invocations                     Metric Name              Metric Description         Min         Max         Avg
Device "GeForce GTX 780 Ti (0)"
    Kernel: mul_mm(double const *, double*, int, int, int)
         30                        flops_dp                   FLOPS(Double)   159500000   159500000   159500000
         30                    flops_dp_add               FLOPS(Double Add)           0           0           0
         30                    flops_dp_mul               FLOPS(Double Mul)    17000000    17000000    17000000
         30                    flops_dp_fma               FLOPS(Double FMA)    71250000    71250000    71250000

我得到159500000 - 17000000 - 71250000 = 71250000。这只是偶然的还是FMA被计算两次?

1 个答案:

答案 0 :(得分:2)

flops指标计算未执行指令的操作数。 FMA和DFMA计为2次操作。分析器对触发器的定义是不一致的,因为它将FMA计为一个计数器为2,另一个计数器为1。

峰值FLOP计算为GpuClockFrequency * CudaCoresPerSm * SmCount * 2 ops / FMA。