我是opencl的绝对新手并且一直在阅读文档,但我遗漏了一些东西。据我了解,工作组的优势在于每个工作人员将为不同的数据执行相同的代码。我一直在阅读文档但我不知道如何完成。 clSetKernelArg似乎是为所有工作者设置内核参数,那么我如何整理组中工作人员的数据集,以便每个工作人员都在处理问题的本身?
答案 0 :(得分:2)
规范方法是传递缓冲区,然后让每个工作项使用缓冲区中的不同元素,具体取决于其id。
kernel void f(global float* buffer) {
int gid = get_global_id(0);
float x = buffer[x];
// x is different in each work-item.
}
我建议您在深入了解OpenCL时搜索一些教程和代码示例。