0

我在 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

4

1 回答 1

1

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

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

于 2013-12-12T20:55:29.183 回答