OpenCL 条件原子函数

OpenCL conditional atomic functions

OpenCL 中,是否可以将原子函数放在 if 条件或 for 循环中。如果可能的话,有人可以为我提供示例内核吗?

是的,他们可以。

对原子函数没有像障碍那样的特殊lock-step要求。

减少计算的 group-wide 结果是很常见的,然后组中只有一个 work-item 用这个 sub-result 更新全局缓冲区。

if (get_local_id(0) == 0)
    atomic_add(result_ptr, group_result);