【问题标题】:OpenCL Kernel : Parallel Summation within a __global variableOpenCL 内核:__global 变量中的并行求和
【发布时间】:2018-05-25 17:31:04
【问题描述】:

我已经了解了 Parallel Sum Reduction 技术。但是,我想知道是否可以将来自不同线程的不同值添加到同一个 __global 变量中,如下所示:

浮点数 = ...; // 为每个线程分配不同的a值

Gvar[1] += a; // 同时对同一个全局变量索引求和

谢谢

【问题讨论】:

    标签: opencl


    【解决方案1】:

    要从不同的工作组更新相同的全局内存位置,您需要使用atomic functions

    您可以从同一组中的不同工作项中执行此操作,但这通常是个坏主意。在组内减少本地内存并在每个工作组中只更新一次全局内存位置几乎总是更有效。

    请注意,大多数原子函数不适用于浮点数据类型,因此您需要使用整数类型或其他方法来解决您的问题。

    【讨论】:

    • 这就是我需要知道的。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2013-07-27
    相关资源
    最近更新 更多