2017-04-13 48 views
0

我想了解parallel forall post on instruction level profiling。尤其是在部分以下行减少了内存相关暂停CUDA为maxwell

NVIDIA的GPU不具备索引寄存器文件,因此,如果堆叠阵列与动态索引进行访问,编译器必须分配在本地存储阵列。在Maxwell体系结构中,本地内存存储不会在L1中进行缓存,因此在存储很重要之后本地内存负载的延迟时间很长。

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

引用说该数组将存储在本地内存中。这块本地内存对应于下面的体系结构?

enter image description here

回答

2

...这是什么意思,他们不被索引

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

这个本地内存在下面的体系结构中对应什么块?

它不对应于它们中的任何一个。本地存储器存储在DRAM中,而不是GPU本身。

+1

“本地内存”==“线程本地内存”,是具有每个线程地址映射的全局内存的子集。 – njuffa