【发布时间】:2013-06-04 23:14:09
【问题描述】:
标题可能比我的实际问题更具体,虽然我相信回答这个问题会解决一个更普遍的问题,即:如何减少来自随机(但合并)全局内存的high latency (~700 cycle) 的影响在 GPU 中访问。
一般来说,如果一个人以合并的负载访问全局内存(例如,我读取了 128 个连续字节),但合并访问之间的距离非常大(256KB-64MB),则一个人会获得很高的 TLB(翻译后备缓冲区)未命中率.这种高 TLB 未命中率是由于 TLB 查找表中使用的内存页面的数量有限(~512)和大小(~4KB)。
我认为 TLB 未命中率高是因为 NVIDIA 使用了虚拟内存,而且我在剖析器以及自费米以来分区露营不再是问题的事实。
是否有可能以某种方式避免高 TLB 未命中率?如果我正在访问沿 X 维度合并并沿 Z 维度具有 X*Y“步幅”的 (X x Y x Z) 立方体,3D 纹理缓存会有所帮助吗?
感谢您对此主题的任何评论。
约束:1) 全局数据不能重新排序/转置; 2) 内核是通信绑定的。
【问题讨论】: