我对内核中的共享变量有疑问。假设我像这样多次启动相同的内核:
if (index>i && index<n){
K<<<1,n>>>(i, n, n);
}
如果我在内核中宣布&#34; K&#34;这样的extern __shared__
变量:
__global__ K(int i, int n){
...
extern __shared__ int test[];
...
}
块内所有内核的所有线程都可以访问它吗?或者共享变量是内核独有的?
答案 0 :(得分:0)
Per-thread local memory
,Per-block shared memory
和global memory
。 __shared__
个变量存储在每个块的内存中。同一个块中的所有线程都可以访问相同的__shared__
var。 __device__
限定符,表示var应存储在全局空间中并具有应用程序的生命周期。