【发布时间】:2012-03-03 17:36:20
【问题描述】:
我知道对于 Intel,向量寄存器已经过优化,例如SandyBridge 微架构 (SSE+AVX),但 NVIDIA 的 GPU 怎么样?
我在某处读到的一些资料(我忘了在哪里)说使用向量寄存器对 NVIDIA 的 GPU 毫无用处。但是我有一个测试运行在 GPU 上运行一个带有向量寄存器的程序,并与没有它们的程序进行比较,他们确实给了我apx。 1.7 倍加速。
仅供参考,英特尔的 CPU 仅对同一程序提供 1.25 倍的加速。
如果 NVIDIA 确实优化了这些向量寄存器,有人可以给我一个解释或阅读来源吗?我需要它作为文档。谢谢。
【问题讨论】:
-
NVIDIA GPU 性能改进的可能来源是内存吞吐量。硬件可以在每个多处理器上的单个事务中对 64 位和 128 位类型进行存储和加载,从而减少总体延迟并提高有效吞吐量。
-
感谢您的回复。你的意思是 16 个装载/存储单元?每个单元可以在每个扭曲中加载/存储 128 位类型吗? (因此使其成为 16x128)。如果不是,我认为情况并非如此。因为隐式向量寄存器的使用(convert_floatn、vloadn 等)确实有所作为。它提供了更好的加速。
-
是的。每个 warp 硬件可以处理 256 和 512 字节的事务大小。这可以在任何给定的占用水平下导致更高的带宽利用率。请参阅these slides(note pdf) 的幻灯片 35,了解 CUDA 中的 memcpy 内核示例,该示例说明了效果。
-
太棒了!感谢您的帮助和参考!这正是我需要的
-
好的,如果你愿意接受的话,我会用我的 cmets 来回答。
标签: opencl intel nvidia cpu-registers