相关疑难解决方法(0)

L2事务如何映射到GPU中的DRAM?

在GPU中,到L2高速缓存的事务可以是32B,64B或128B(读和写)的大小.并且可以使用诸如gst_transactions和gld_transactions之类的nvprof度量来测量此类事务的总数.但是,我无法找到任何详细说明如何映射这些事务以进行DRAM访问的材料,即这些事务如何由DRAM处理,而这些事务通常具有不同的总线宽度?例如,TitanXp GPU具有384位全局内存总线,P100具有3072位内存总线.那么32B,64B或128B指令如何映射到这些存储器总线.如何衡量DRAM控制器生成的事务数量?

PS:dram_read_transactions指标似乎没有这样做.我之所以这么说是因为我在TitanXp和P100上获得了相同的dram_read_transactions值(即使在顺序访问期间),尽管两者的总线宽度差异很大.

cuda gpu gpgpu nvidia

3
推荐指数
1
解决办法
134
查看次数

带宽的nvprof选项

使用命令行中的nvprof --metrics测量带宽的正确选项是什么?我正在使用flop_dp_efficiency来获得峰值FLOPS的百分比,但是手册中的带宽测量似乎有很多选项,我真的不明白我在测量什么.例如dram_read,dram_write,gld_read,gld_write对我来说都是一样的.另外,如果假设两者同时发生,我应该将bandwdith报告为读写吞吐量的总和吗?

编辑:

根据图中的优秀答案,从设备内存到内核的带宽是多少?我想在从内核到设备内存的路径上占用最小的带宽(读取+写入),这可能是L2缓存.

我试图通过测量FLOPS和带宽来确定内核是否受计算或内存限制.

profiling cuda nvprof

2
推荐指数
1
解决办法
2821
查看次数

标签 统计

cuda ×2

gpgpu ×1

gpu ×1

nvidia ×1

nvprof ×1

profiling ×1