【发布时间】:2017-05-10 12:43:55
【问题描述】:
我有一个不接受任何输入的内核,并且其工作项之间不相互通信。每个工作项根据其global_id 对不同的参数进行操作,但这没有传入。我希望每个工作项处理其任务,根据某些标准筛选结果,并将结果写回全局内存数组如果它符合这个标准。做这个的最好方式是什么?我考虑了一个__global 索引,该索引将从0 开始并在每次写入时递增,但是此访问没有锁定,并且并行进程最终处于一堆竞争条件中,所以我不知道从哪里说输出数组中要写入的每个工作项。
如果这是一种更高级别的语言,我希望能够传入一个共享哈希或其他东西,然后将成功的输出推送到它上面,由global_id 键入,但我无法弄清楚最合适的方法是在 OpenCL 领域。有什么想法吗?我使用的是普通 C,而不是 C++。
【问题讨论】: