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