小编use*_*898的帖子

为什么我不能使用单个线程来初始化共享内存?

这似乎应该很简单,但我找不到任何参考,所以我在这里问.

我有以下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)

当我尝试编译时,我收到错误"初始化程序不允许共享变量"

我究竟做错了什么?在我看来,我只有一个线程正在进行初始化...

谢谢!

cuda gpu shared-memory

2
推荐指数
1
解决办法
942
查看次数

标签 统计

cuda ×1

gpu ×1

shared-memory ×1