CUDA多线程使用一个指针

时间:2018-11-27 19:29:26

标签: cuda

例如,我有一些数组Y,并且我想在多个线程中递增Y[0]。 如果仅在Y[0]++函数中使__global__,则Y[0]将为1。 那么,如何解决呢?

1 个答案:

答案 0 :(得分:3)

原子操作取决于实现。如果编译时没有警告,则可能可行,但应进行测试:-),或至少检查汇编程序。

__global__ void mykernel(int *value){
    int my_old_val = atomicAdd(value, 1);
}

请参见指南here