Cuda 什么时候我应该支持更具体的原子操作而不是使用原子?

Cuda 什么时候我应该支持更具体的原子操作而不是使用原子?,cuda,atomic,compare-and-swap,Cuda,Atomic,Compare And Swap,我一直在do-while循环中使用atomicCAS,以便在第一个并行程序中需要时执行各种算术运算。我看到还有其他操作,比如atomicInc,这与在do while中使用atomicCAS进行递增是一样的,对吗?这会更有效(就时钟周期而言),还是从我过度使用的atomicCAS中过渡没有意义?这个问题唯一合理的答案是“每个场景都有一个专门构建的原子原语来执行相同的操作” 在NVIDIAGPU上,只有在没有其他选择的情况下,使用atomicCAS作为算术运算的伪互斥才有意义。即使今天没有明显的性

我一直在
do-while
循环中使用
atomicCAS
,以便在第一个并行程序中需要时执行各种算术运算。我看到还有其他操作,比如
atomicInc
,这与在
do while
中使用
atomicCAS
进行递增是一样的,对吗?这会更有效(就时钟周期而言),还是从我过度使用的
atomicCAS中过渡没有意义?

这个问题唯一合理的答案是“每个场景都有一个专门构建的原子原语来执行相同的操作”


在NVIDIAGPU上,只有在没有其他选择的情况下,使用atomicCAS作为算术运算的伪互斥才有意义。即使今天没有明显的性能差异,通过使用转换为PTX指令的原子原语,您的代码也有可能在未来硬件和工具链上获得性能提升,因为NVIDIA改进了它们的实现。

对于这个问题,唯一合理的答案是“每个场景都有一个专门构建的原子原语来执行相同的操作”


在nVIDIA GPU上,只有在没有其他选择的情况下,使用atomicCAS作为算术运算的伪互斥才有意义。即使今天没有明显的性能差异,通过使用转换为PTX指令的原子原语,您的代码也有可能在未来的硬件和硬件上获得性能提升NVIDIA未来的工具链改进了它们的实现。

T威利,请考虑接受@ TalnMeMes的回答。