CUDA:我可以知道我是否有全局内存合并吗?

发布于 2024-11-17 21:55:05 字数 339 浏览 1 评论 0原文

我使用的是 GeForce GTX 580(计算能力 2.0)。

在我的程序中,我怀疑瓶颈是对内核中全局内存的访问。我怀疑这一点是因为所有计算都涉及通过索引全局内存中存储的数组获得的数字,而且从双精度切换到单精度只会将性能提高 10% 左右。 (据我所知,如果浮点运算是瓶颈,那么费米设备的速度应该是两倍(?))

因此,为了改善这个瓶颈,我考虑了内存合并。这里的问题是我不知道我是否实现了它。要么我已经有了它,而且这已经是最好的了(比 intel i7 上的顺序版本快 25 倍),或者我可以通过某种重写来获得合并,让它运行得更快。

但有办法知道吗?我可以以某种方式“关闭”合并来找出答案,或者以其他方式找出答案吗?

I'm using a GeForce GTX 580 (compute capability 2.0).

In my program i'm suspecting that the bottleneck is access to global memory in the kernel. I suspect this because all the calculations involve numbers gotten by indexing an array stored in global memory, and because switching from double precision to single precision only improves the performance by like 10%. (afaik it should be twice as fast with a fermi device if the floating point operations are the bottleneck (?))

So to improve this bottleneck i thought about memory coalescence. The problem here is that i don't know if i achieved it or not. Either i already have it, and this is as good as it gets (25 times faster than the sequential version on an intel i7), or i might get it to run much faster by somehow rewriting to get coalescence.

But is there a way to know? Can i somehow "turn off" coalescence to find out, or find out in another way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

反话 2024-11-24 21:55:05

CUDA Visual profiler 将在汇总表中显示每个内核的加载/存储效率; Grizzly 给出了关于新卡中的变化的一个很好的答案:计算教授的非相干和相干 gst/gld 字段? (CUDA/OpenCL)

The CUDA Visual profiler will show you the load/store efficiency of each kernel in the summary table; Grizzly gave a good answer about how this has changed in the newer cards here: Compute Prof's fields for incoherent and coherent gst/gld? (CUDA/OpenCL)

黎歌 2024-11-24 21:55:05

不,内存合并不是您打开或关闭的东西,而是您通过使用正确的内存访问模式和对齐来实现的东西。我不确定,因为我从未使用过(不在 Windows 上工作),但我认为 nVidia 的 Parallel Nsight 可以告诉您内存访问是否合并。

No, memory coalescence is not something you turn on or off, it is something you achieve by using the correct memory access patterns and alignment. I am not sure as I have never used (not working on Windows) but I think nVidia's Parallel Nsight can tell you if your memory accesses are coalesced or not.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文