如果像包括这个在内的几个在线资源都有,执行的指令数+重播数=发出的指令数,如果重播数为正,那么一个CUDA内核如何具有以下属性(来自nvprof)?
Invocations Avg Min Max Event Name
1 69161760 69161760 69161760 inst_executed
1 37263115 37263115 37263115 inst_issued1
1 19130919 19130919 19130919 inst_issued2
(inst_issued = inst_issued1 + inst_issued2 = 37263115 + 19130919; ratio = inst_executed/inst_issued > 1).
是
inst_issued = inst_issued1 + inst_issued2
发出指令总数的正确公式?除了 *issued1 和 *issued2 之外,还有内核发布的指令吗?如果是这样,如何对其进行分析?
在网上,我没有看到任何明显的问题答案。例如,我的 nvprof --query-events 版本只产生上述三个参数作为 --events 的可能参数。在 CUDA 编程文档、上面的链接或我读过的与 CUDA 指令优化相关的其他十个左右的链接中似乎也没有提到这一点。
附加信息:
0) 我正在运行 CUDA 5.0,并使用 nvcc -m64 -arch=sm_30 进行编译。
1)我正在运行我的内核的仅数学版本,并且由于它没有寄存器压力,因此全局内存访问的数量可以忽略不计。
2) 我无法访问 nVidia 视觉分析器,所以我不确定它是否会给我与上述不同的答案。
非常感谢,如果这很愚蠢,请提前道歉。