OpenCL中GPU到CPU通信的最佳方法

时间:2016-12-25 21:33:55

标签: c opencl gpu gpgpu

我有一个没有输入的内核,其工作项不能相互通信。每个工作项基于其global_id操作不同的参数,但不传入。我希望每个工作项处理其任务,根据某些条件筛选结果,并将结果写回全局内存数组,如果符合此条件。做这个的最好方式是什么?我考虑了__global索引,它将从0开始并在每次写入时递增,但是此访问没有锁定,并行进程最终会出现在一堆竞争条件中,所以我不这样做知道在输出数组中告诉要写入的每个工作项的位置。

如果这是一种更高级别的语言,我希望能够传递一个共享哈希或其他东西,只需将成功的输出推送到它上面,由global_id键入,但我遇到了麻烦确定最合适的方法是在OpenCL土地上。有什么想法吗?我使用的是vanilla C,而不是C ++。

1 个答案:

答案 0 :(得分:1)

This看起来就像我需要的那样,我只是缺乏googlefu来实现它!

如果您对最佳做法有任何其他建议,请回复,但为了将来参考,上面加上__global内存缓冲区将满足我的需求。