CUDA:共享内存分配

时间:2013-05-06 19:29:47

标签: cuda

假设我在cuda内核中定义了一个共享变量,如下所示:

__shared__ int var;

现在,让我们说在我的内核中的某些时候我想指定一些值,比如说100var。说

var = 100;

导致块中的所有线程执行此赋值。

如何才能让作业只进行一次?这是我唯一的选择:

if( threadIdx.x == 0)
    var = 100;

1 个答案:

答案 0 :(得分:10)

你唯一的选择就是:

if( threadIdx.x == 0)
    var = 100;

__syncthreads();

如果省略同步障碍,则无法保证在执行赋值语句后,块中的所有线程都将读取var的值。