cuda原子添加可见性

标签 cuda synchronization gpu-atomics

在 CUDA 中,原子操作的结果对于与执行原子操作的线程位于同一 block 中的其他线程束的线程是否立即可见?在非原子操作的情况下,我知道在调用 __syncthreads() 之前结果可能不可见。

最佳答案

是的,根据定义,原子操作在对同一地址执行原子操作的任何其他线程访问相同值之前就完成并可见。

但是,如果其他线程同时通过非原子访问访问同一地址,则可能会出现竞争条件,因此您仍然必须小心编写正确的并发代码。

关于cuda原子添加可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836876/

相关文章:

cuda - cuda.h、cuda_runtime.h、cuda_runtime_api.h 之间的区别

c++ - 一起使用 std::thread 和 CUDA

frameworks - 我可以在 azure 中/在 azure 上使用 sql server 通过 wcf 运行 sftp 和同步框架吗?

iphone - 当同步访问对象时,是什么导致对象 [0] 处出现 nil 对象?

c++ - Cuda 内核返回 vector

cuda - 在两个 GPU 上运行的代码无法达到并发执行并且加速效果无关

Java volatile变量影响其他非volatile变量的内存一致性

cuda - 如何实现涉及多个变量的自定义原子函数?

CUDA 原子操作列表

cuda - 如何在 CUDA 中实现原子负载