Fermi 架构上的 int2 与 int4 负载

发布于 2024-11-08 01:50:33 字数 64 浏览 0 评论 0 原文

如果需要将两个 int2 从设备内存加载到寄存器,那么两次连续加载 int2 与一次加载 int4 相比会差多少?

If needed to load two int2 from device memory to registers, how much worse are two consecutive loads with int2 compared with one load with int4?

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

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

发布评论

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

评论(1

霞映澄塘 2024-11-15 01:50:33

这取决于 GPU 和内存访问模式。但是,假设(由于问题中缺乏信息)在计算能力 2.0+ GPU(Fermi GPU)上进行顺序寻址,请参阅 GTC 2010 中 Paulius Micikevicius 的演示文稿

该幻灯片显示,对于较低的多处理器占用率(每个多处理器的活动线程数较低),int4 可以发挥很大作用超过 int2。对于高入住率来说,差别不大。

然而,正如幻灯片所指出的,“几个独立的较小访问具有相同的效果
作为一个更大的。例如: 4 个 32 位 ~= 1 个 128 位”。因此,如果您需要加载的两个 int2 值是独立的,只需在代码中依次发出两个加载,它应该与执行几乎相同的性能一个 int4,假设如上所述的一致内存访问。

This depends both on the GPU and on your memory access pattern. However, assuming (for lack of information in the question) sequential addressing on a compute capability 2.0+ GPU (Fermi GPU), see slide 27 of this presentation by Paulius Micikevicius from GTC 2010.

The slide shows that for multiprocessor occupancy that is low (low active threads per multiprocessor), int4 can make a big difference over int2. For high occupancy, there is little difference.

HOWEVER, as the slide notes, "Several independent smaller accesses have the same effect
as one larger one. For example: Four 32-bit ~= one 128-bit". So if the two int2 values you need to load are independent, just issue the two loads one after another in your code, and it should be almost the same performance as doing one int4, assuming coherent memory access as mentioned above.

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