我基本上提出了与in this discussion相同的问题。我尤其要参考此最终答复:
我想知道这种情况今天是否仍然存在。我想知道为什么需要多维“外部”网格的原因。
我想了解的是,这个目的是否有意义(例如,从空间局部性中获得的实际收益),还是为了方便起见(例如,在图像处理环境中,是否只是为了使我们能够CUDA知道特定块正在处理的x / y“补丁”,以便可以将其报告给CUDA Visual Profiler或其他东西吗?
第三种选择是,这仅是较早版本CUDA的保留,它是硬件索引限制的一种解决方法。
最佳答案
使用多维网格绝对有好处。不同的条目(tid,ctaid)是只读变量,可显示为特殊寄存器。参见PTX ISA
如果某些数据无需进一步处理就可以使用,不仅会获得算术指令-可能在多维数据的每个索引步骤,而且更重要的是,您节省了寄存器,这在任何硬件上都是非常稀缺的资源。