标签: cuda
例如,我有一些数组Y,并且我想在多个线程中递增Y[0]。 如果仅在Y[0]++函数中使__global__,则Y[0]将为1。 那么,如何解决呢?
Y
Y[0]
Y[0]++
__global__
答案 0 :(得分:3)
原子操作取决于实现。如果编译时没有警告,则可能可行,但应进行测试:-),或至少检查汇编程序。
__global__ void mykernel(int *value){ int my_old_val = atomicAdd(value, 1); }
请参见指南here