在CUDA统一内存多GPU或多处理器中使用原子算术运算

时间:2020-06-08 16:58:44

标签: cuda atomic unified-memory

我正在尝试实现使用统一内存的CUDA程序。我有两个统一的数组,有时它们需要原子更新。

以下问题为单个GPU环境提供了答案,但我不确定如何扩展问题中给出的答案以适应多GPU平台。

问题:cuda atomicAdd example fails to yield correct output

如果您需要此信息,我有4辆Tesla K20,它们全部更新了必须原子完成的部分阵列。

我将不胜感激。

1 个答案:

答案 0 :(得分:3)

将评论总结为答案:

  • 您可以使用atomicAdd_system来执行这种在地址空间范围内的原子操作
  • 但是,您只能在6.x或更高版本的计算能力(如果使用Tegra,则为7.2或更高版本)上执行此操作
  • 具体来说,这意味着您必须进行编译才能获得正确的计算能力,例如-arch=sm_60或类似的
  • 您在问题中指出您正在使用Telsa K20卡-这些是计算能力3.5,不支持任何系统范围的原子功能。

与往常一样,该信息在《编程指南》的relevant section中进行了巧妙地总结。

相关问题