我一直在do-while
循环中使用atomicCAS
,以便在我的第一个并行程序中需要时执行各种算术运算。我看到还有其他操作,例如atomicInc
,这与在do-while
中使用atomicCAS
递增相同,对吗?这会更有效(就时钟周期而言(,还是没有意义从我对atomicCAS
的过度使用过渡?
这个问题唯一合理的答案是"每个场景都有一个专门构建的原子基元来执行相同的操作"。
在 nVIDIA GPU 上,只有在您没有其他选择的情况下,才有意义。即使今天没有明显的性能差异,通过使用转换为 PTX 指令的原子原语,随着 NVIDIA 改进其实现,您的代码也有可能在未来的硬件和未来的工具链上提高性能。