【问题标题】:When should I favor a more specific atomic operation over using atomicCAS?我什么时候应该支持更具体的原子操作而不是使用 atomicCAS?
【发布时间】:2017-03-22 06:20:16
【问题描述】:

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

【问题讨论】:

  • T Willy,请考虑接受@talonmies 的回答。

标签: cuda atomic compare-and-swap


【解决方案1】:

对该问题的唯一明智答案是“每个场景都有一个专门构建的原子原语来执行相同的操作”。

在 nVIDIA GPU 上,仅当您别无选择时,将 atomicCAS 用于算术运算的人造互斥锁才有意义。即使今天没有明显的性能差异,通过使用转换为 PTX 指令的原子原语,随着 NVIDIA 改进其实现,您的代码也有可能在未来的硬件和未来的工具链上获得性能提升。

【讨论】:

    猜你喜欢
    • 2016-08-09
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多