我很好奇为什么分析器报告的失败次数不等于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被计算两次?
答案 0 :(得分:2)
flops指标计算未执行指令的操作数。 FMA和DFMA计为2次操作。分析器对触发器的定义是不一致的,因为它将FMA计为一个计数器为2,另一个计数器为1。
峰值FLOP计算为GpuClockFrequency * CudaCoresPerSm * SmCount * 2 ops / FMA。