【问题标题】:CUDA sum across blocks跨块的 CUDA 总和
【发布时间】:2018-11-01 17:21:59
【问题描述】:

您好,我是 cuda 编程的新手,但遇到了问题。

我有一个变量,让我们调用 foo 存储在每个块的共享内存中,每个块具有不同的值。而且我只希望一个线程将所有这些跨块相加。我想将 foo 发送到全局内存然后计算总和,但是有没有什么函数可以更快地做到这一点?

感谢您的帮助。

【问题讨论】:

    标签: cuda gpu


    【解决方案1】:

    让每个块中的一个线程执行atomicAdd() 操作会更快,将每个块的值添加到全局内存中的单个网格范围变量中。

    参见CUDA C Programming guiderelevant section

    要更深入地探索优化缩减(= 求和),尽管不一定是您想要执行的,请查看 Mark Harris 的演示文稿:Optimizing Parallel Reduction in CUDA

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 2015-03-16
      相关资源
      最近更新 更多