如何使 Nsight 分析的内存统计部分有意义?

how to make a meaning of memory statistics section of Nsight profiling?

我在

上使用 Geforce 820m

我怎么知道我是否达到了我可以从这张卡获得的最大内存吞吐量?是否有像占用率但内存吞吐量的百分比值?或者我怎样才能得到这些数字的 use/meaning?

GPU 上的峰值理论设备内存带宽由下式给出

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

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

how could i know if i am achieving the max memory throughput i can get from this card or not?

如果比较这两个数字,您就会有所了解。然而,上述峰值理论带宽计算通常在任何情况下都无法观察到。 cuda bandwidthTest 示例代码给出了 "real" 代码可实现的最大值的更好代理,具体参考 "device-to-device" 带宽测量。无论如何,这个数字应该仍然在每秒几千兆字节的范围内(对于你的设备来说可能是 10)所以你仍然有一些余量。

is there a percentage value like occupancy but for memory throughput?

分析器有 metrics,例如 dram_utilization,这可能是您感兴趣的。您还可以汇总 dram_read_throughputdram_write_throughput 以获得更精确的数字。