use*_*898 2 cuda gpu shared-memory
这似乎应该很简单,但我找不到任何参考,所以我在这里问.
我有以下CUDA内核,我将在2-D线程块的网格中启动:
__global__ void kernel(){
if (threadIdx.x == 0 && threadIdx.y == 0) {
__shared__ int test = 100;
}
__syncthreads();
// Do more stuff
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,我收到错误"初始化程序不允许共享变量"
我究竟做错了什么?在我看来,我只有一个线程正在进行初始化...
谢谢!
Rob*_*lla 10
改为:
__global__ void kernel(){
__shared__ int test;
if (threadIdx.x == 0 && threadIdx.y == 0) {
test = 100;
}
__syncthreads();
// Do more stuff
}
Run Code Online (Sandbox Code Playgroud)
__shared___变量的声明必须与操作它的代码分开.
| 归档时间: |
|
| 查看次数: |
942 次 |
| 最近记录: |