我什么时候应该更喜欢更具体的原子操作而不是使用原子CAS



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

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

在 nVIDIA GPU 上,只有在您没有其他选择的情况下,才有意义。即使今天没有明显的性能差异,通过使用转换为 PTX 指令的原子原语,随着 NVIDIA 改进其实现,您的代码也有可能在未来的硬件和未来的工具链上提高性能。

最新更新