看来我误解了本地内存,认为访问速度很快,并且在内核中分配一个大数组可以利用它,这将是一件好事。然而,经过一番谷歌搜索后,看起来本地内存实际上是全局内存的一部分,因此访问速度会很慢。所以现在我试图准确理解当我在内核中分配一个大数组时会发生什么。考虑到寄存器非常有限,数组肯定无法容纳在该空间中。剩余部分是否会溢出并写入本地分配的全局内存空间?它的各个部分是否根据需要移入和移出寄存器?如果我必须在内核中多次读写它,那么它是否以某种方式缓存,可以减轻它是全局内存的事实?线程实际可以使用多少内存来动态分配数组,这个限制只是全局内存量除以线程数吗?
如果这对你答案中的数字很重要,我正在使用 V100。谢谢!