使用命令行的nvprof -度量标准测量带宽的正确选项是什么?我使用flop_dp_efficiency来获取峰值触发器的百分比,但是在手册中似乎有很多测量带宽的选项,但我并不真正理解我正在测量的是什么。在我看来,dram_read,dram_write,gld_read,gld_write都是一样的。此外,我是否应该假设两者同时发生,从而将bandwdith报告为read+write吞吐量的总和?
编辑:
根据图表的最佳答案,从设备内存到内核的带宽是多少?我正在考虑从内核到设备内存的路径上的最小带宽(read+write),这很可能是拖到L2缓存的。
我试图通过测量触发器和带宽来确定内核是计算的还是内存的。
发布于 2016-06-10 04:49:47
为了理解这方面的分析器度量,有必要了解GPU中的内存模型。我发现在Nsight Visual Studio版本文档中发布的图表很有用。我已经用编号箭头标记了图表,这些箭头引用了我在下面列出的编号度量(和传输方向):

有关每个度量的描述,请参阅CUDA分析器指标参考:
备注:
有了上面的描述,你的问题可能还没有得到回答。然后,你就有必要澄清你的要求--“你想准确地衡量什么?”但是,根据您编写的问题,如果您关心的是实际消耗的内存带宽,那么您可能希望查看dram_xxx指标。
另外,如果您只是试图获得最大可用内存带宽的估计值,那么使用CUDA示例代码bandwidthTest可能是获得该数据的代理度量的最简单方法。只需使用所报告的设备的设备带宽编号,作为对您的代码可用的最大内存带宽的估计。
结合上述思想,dram_utilization度量提供了一个缩放的结果,表示实际使用的总可用内存带宽的一部分(从0到10)。
https://stackoverflow.com/questions/37732735
复制相似问题