Cuda对麦克斯韦的好评

时间:2017-04-13 12:29:46

标签: cuda gpu gpgpu maxwell

我想了解parallel forall post on instruction level profiling。特别是减少内存依赖性停顿部分中的以下几行:

  

NVIDIA GPU没有索引的寄存器文件,因此如果使用动态索引访问堆栈数组,编译器必须在本地内存中分配该数组。在Maxwell架构中,本地内存存储不会缓存在L1中,因此存储后本地内存加载的延迟很大。

我了解注册文件是什么,但是它们不是索引是什么意思?为什么它会阻止编译器存储使用动态索引访问的堆栈数组?

引用说该数组将存储在本地内存中。这个本地内存在下面的架构中对应什么块?

enter image description here

1 个答案:

答案 0 :(得分:2)

  

......他们没有被编入索引是什么意思

这意味着不支持寄存器的间接寻址。因此,不可能从一个寄存器(理论上是保存数组的第一个元素的寄存器)索引到另一个任意寄存器。因此,编译器无法为存储在寄存器中的数组的非静态索引生成代码。

  

这个本地内存在下面的架构中对应哪个块?

它与其中任何一个都不对应。本地内存存储在DRAM中,而不是存储在GPU本身上。