我正在使用 OpenCL。我对以下示例中如何执行工作项感兴趣。
我的一维范围为 10000,工作组大小为 512。内核如下:
__kernel void
doStreaming() {
unsigned int id = get_global_id(0);
if (!isExecutable(id))
return;
/* do some work */
}
在这里它检查是否需要使用以下 id 处理元素。
假设执行从 512 大小的第一个工作组开始,其中 20 个被拒绝isExecutable
。GPU 是否继续执行其他 20 个元素而不等待前 492 个元素?
不涉及任何障碍或其他同步技术。