CUDA 分析器中"flop_count_sp"和"inst_fp_32"指标的含义



根据探查器用户指南:

flop_count_sp:非谓词线程执行的单精度浮点操作数(加法、乘法和乘法累加(。每个乘法-累加运算为计数贡献2。计数不包括特殊操作。

inst_fp_32:非预测线程执行的单精度浮点指令数(算术、比较等(

我有一个内核,它的探查器输出可以添加到以下内容中:

flop_count_sp = flop_count_sp_add + flop_count_sp_mul + 2 * flop_count_sp_fma
inst_fp_32 = flop_count_sp_add + flop_count_sp_mul + flop_count_sp_fma

考虑到这些度量中的数字,我想知道什么是操作,这里的指令是什么?fma似乎是一条指令,但却是两个操作。而CCD_ 2和CCD_。由于SASS程序集由探查器计数。是否有任何指令不算作操作?反之亦然。我只想在nvprof和nvvp度量的上下文中知道。

此外,当我们谈论TFLOP/s中的峰值性能时,这里的OP对应于我想的操作?如果我想估计像计算到全局内存访问(CGMA(这样的东西,我应该使用flop_count_sp而不是inst_fp_32作为计算部分吗?提前谢谢。

我想知道什么是操作,什么是指令?fma似乎是一条指令,但却是两个操作。而CCD_ 8和CCD_。

是,正确。融合乘法-加法指令计为2次运算(一次乘法,加一次加法(。乘法或加法指令算作一个运算。

是否有任何指令不算作操作?

是的,任何在SM内不使用单精度(或双精度,例如flop_count_dp(功能单元的指令都不会对这些度量进行任何操作(inst或op(。例如,整数指令或加载或存储指令不会影响这些度量。我认为,任何可能具有浮点性质(例如浮点转换(但不包含加法或乘法运算的指令都不会对运算指标产生影响。

此外,当我们谈论TFLOP/s中的峰值性能时,这里的OP对应于操作,我想是吗?

如果我想估计像计算到全局内存访问(CGMA(这样的东西,我应该为计算部分使用flop_count_sp而不是inst_fp_32吗?

我认为这可能是一个意见问题。我会使用说明书。如前所述,一个融合的乘加指令计为2次运算,但它不是"1";双";浮点单元上的压力。因此,当比较代码以查看全局存储器加载/存储活动与计算"活动"之间的平衡时;压力";,我会使用说明书。再说一遍,可能是意见问题。

相关内容

  • 没有找到相关文章

最新更新