【问题标题】:Different views of memory bandwidth between visual profiler and nsight analysis视觉分析器和 nsight 分析之间内存带宽的不同视图
【发布时间】:2013-06-15 23:28:41
【问题描述】:

我在 windows 下使用 Cuda 5.5,带有 VS2010、nsight 3.1 和捆绑的视觉分析器。

我有一个只做存储的玩具内核,我从 nsight 和视觉分析器看到不同的数据。我应该相信哪个?为什么我会得到不同的看法?

Nsight 说 4.21MB 存储,视觉分析器说 71402 个事务,代表 8.9MB(假设它们都是 128B)。因此,Nsight 称 BW 为 277GB/s,视觉分析器为 126.69GB/s

我看到 Nsight 数据更接近现实,因为我的数据集是 1024x1024。

编辑

我已经从我原来的问题中删除了很多不好的假设。我在考虑 CPU 和缓存的一致性。

访问模式: 每个线程执行 4 次 1 字节连续存储(dst 是 char*):

for (int i = 0; i < 4; i++) {
   dst[offset+i] = 0;
}

【问题讨论】:

  • 如果您发布可复制的内容会很有帮助,因为我对您的访问模式并不完全清楚。我已将问题发送给 Nsight VSE 开发团队。
  • 缓存行没有所有权。如果您按线程发布您的访问模式,我可能会提供更详细的答案。
  • 我在描述中添加了访问模式。每个线程执行 4 次 1 字节的存储,连续

标签: visual-studio-2010 cuda nsight


【解决方案1】:

设备内存和全局内存是有区别的。在编程指南中,它说设备内存包括“全局、本地、共享、常量或纹理内存”(参见 5.3.2)。

在您的第一张图片中,全局加载和存储应位于名为 L1/Shared Memory 的第一个表中(在您的捕获中不可见)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2011-05-20
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    相关资源
    最近更新 更多