使用命令行中的nvprof --metrics测量带宽的正确选项是什么?我正在使用flop_dp_efficiency来获得峰值FLOPS的百分比,但是手册中的带宽测量似乎有很多选项,我真的不明白我在测量什么.例如dram_read,dram_write,gld_read,gld_write对我来说都是一样的.另外,如果假设两者同时发生,我应该将bandwdith报告为读写吞吐量的总和吗?
编辑:
根据图中的优秀答案,从设备内存到内核的带宽是多少?我想在从内核到设备内存的路径上占用最小的带宽(读取+写入),这可能是L2缓存.
我试图通过测量FLOPS和带宽来确定内核是否受计算或内存限制.
在CUDA分析器中,有两个名为dram_read_transactions和gld_transactions的度量标准.cuda profiler用户指南说"gld_transactions"表示全局内存加载事务的数量,而"dram_read_transactions"表示设备内存读取事务.我无法区分这些描述,因为读取数据意味着加载数据和全局内存很大.但这两个指标的分析结果是不同的.我用一个内核测试过.对于具有不同线程设置的相同内核,gld_transactions始终是相同的值33554432.此值是稳定的.但是对于dram_read_transactions,两个不同的线程设置导致不同的值,它们大致为4486636和4197096.对于"粗略"这个词,我的意思是这些值不稳定,因为它们从一个执行稍微改变到另一个执行.我们还可以看到dram_transactions远小于gld_transactions.所以我的问题可以在这里总结:
我想一旦我们知道问题(1)的答案,那么可以很容易地解释问题(2)和(3).所以有人能解释一下吗?提前致谢.