OpenCL条件原子函数

问题描述

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

解决方法

是的,他们可以。

对于原子函数,没有像屏障那样的特殊锁定步骤要求。

通常会减少整个组范围内的计算结果,然后只有该组中的一个工作项才会使用此子结果更新全局缓冲区。

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