如何使Nsight剖析的内存统计部分的含义?

时间:2015-08-25 11:44:01

标签: visual-studio cuda nvidia nsight

我使用Geforce 820m和

  • GPU时钟频率:1124 MHz(1.12 GHz)
  • 内存时钟频率:900 Mhz
  • 内存总线宽度:64位
  • L2缓存大小:1048576字节 我使用Nsight性能分析来分析我的应用程序的内存事务并获取内存统计信息,这显示了类似的内容 memory stats

我怎么知道我是否实现了可以从这张卡获得的最大内存吞吐量?是否存在百分比值,如占用率,但内存吞吐量?或者我如何使用/意味着这些数字?

1 个答案:

答案 0 :(得分:3)

GPU上的峰值理论设备内存带宽由

给出

900MHz * 2(DDR)* 8字节/传输(64位宽度)= 14.4GB / s

在这种情况下观察到的(利用的)内存带宽由“L2 Cache”和“Device Memory”之间的链路上的数字给出:856.7MB / s(即小于1GB / s)

  

我怎么知道我是否能够从这张卡中获得最大内存吞吐量?

如果你比较这两个数字,你会得到一个想法。然而,在任何情况下通常都无法观察到上述峰值理论带宽计算。通过“真实”代码可以实现的最佳代码是cuda bandwidthTest示例代码,具体是指“设备到设备”带宽测量。无论如何,这个数字应该仍然是每秒几千兆字节(对于你的设备可能是10千兆字节),所以你仍然有一些空间。

  

是否有百分比值,如占用率,但内存吞吐量?

个人资料工具有metrics,例如dram_utilization,可能会引起您的兴趣。您还可以汇总dram_read_throughputdram_write_throughput以获得更准确的数字。