首页 > 解决方案 > CUDA 多线程使用一个指针

问题描述

好吧,例如我有一些数组Y,我想Y[0]在多个线程中递增。如果我只做功能Y[0]++,那么将是1。那么,如何解决这个问题?__global__Y[0]

标签: cuda

解决方案


原子操作依赖于实现。如果编译时没有警告,它可能会工作,但应该进行测试:-),或者至少检查汇编程序。

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

请参阅此处的指南


推荐阅读