问题描述
如果条件或 OpenCL 中的for循环,可以将原子函数放在内部。可能的话,有人可以给我提供示例内核吗?
解决方法
是的,他们可以。
对于原子函数,没有像屏障那样的特殊锁定步骤要求。
通常会减少整个组范围内的计算结果,然后只有该组中的一个工作项才会使用此子结果更新全局缓冲区。
if (get_local_id(0) == 0)
atomic_add(result_ptr,group_result);
如果条件或 OpenCL 中的for循环,可以将原子函数放在内部。可能的话,有人可以给我提供示例内核吗?
是的,他们可以。
对于原子函数,没有像屏障那样的特殊锁定步骤要求。
通常会减少整个组范围内的计算结果,然后只有该组中的一个工作项才会使用此子结果更新全局缓冲区。
if (get_local_id(0) == 0)
atomic_add(result_ptr,group_result);