【发布时间】:2011-07-02 04:54:58
【问题描述】:
说我有一个 cuda 内核
__global__ foo (int a, int b)
{
... ...
}
a 和 b 的存储位置。这会占用每个线程的寄存器空间吗?
【问题讨论】:
标签: cuda
说我有一个 cuda 内核
__global__ foo (int a, int b)
{
... ...
}
a 和 b 的存储位置。这会占用每个线程的寄存器空间吗?
【问题讨论】:
标签: cuda
不,这不会为每个线程占用寄存器空间,而是将a 和b 分配在一个常量空间(只读空间)中,所有线程都可以从中读取。
注意,这个空间是由常量寄存器缓存的,由所有线程共享:
只读常量缓存是 由所有标量处理器内核共享 并加快从常数读取 内存空间,这是一个只读的 设备内存区域 [PTX ISA 版本 2.1 第 3 章]。
【讨论】: