cuda 内核函数中的多线程访问变量是如何处理

2025-04-27 13:41:46
推荐回答(1个)
回答1:

你好,

楼主是说block级的同步吗?CUDA没有提供这样的函数,因为一是这种操作太耗时间,二是凡是这种操作都可以以其他方式解决。CUDA提供了一下两个同步函数:

  • __syncthreads(); 用来同步每个block内的线程,用于kernel当中。

  • cudaDeviceSyncronize(); 用来同步设备上所有之前的操作。在调用cudaStream或者多个GPU的时候需要用到这个函数来保证每个stream或每个GPU运行到同一点。