说我有一个cuda内核
__global__ foo (int a, int b)
{
... ...
}
存储a和b的位置。这会占用每个线程的寄存器空间吗?
答案 0 :(得分:2)
这不会占用每个线程的寄存器空间,而是a
和b
在一个常量空间中分配一次 - 一个只读空间 - 所有线程都可以从中读取。
请注意,此空间由常量寄存器缓存并由所有线程共享:
一个只读的常量缓存 由所有标量处理器内核共享 并加速从常量读取 内存空间,这是一个只读的 设备内存区域[PTX ISA版本2.1第3章]。