我可以假设这get_local_id(0)
等于get_global_id(0)
所有硬件/平台上 OpenCL 中的第一个工作组吗?
问题是,如果生成的每个工作项0,1,2,3,4,5,6,7
在全局空间中都被赋予 id,然后0,1,2,3 | 0,1,2,3
在本地空间中被赋予 id。
或者它可能是本地空间,0,2,4,6 | 1,3,5,7
. 在哪里 | 在此示例中拆分两个工作组,即两个工作组和 8 个工作项。
我可以假设这get_local_id(0)
等于get_global_id(0)
所有硬件/平台上 OpenCL 中的第一个工作组吗?
问题是,如果生成的每个工作项0,1,2,3,4,5,6,7
在全局空间中都被赋予 id,然后0,1,2,3 | 0,1,2,3
在本地空间中被赋予 id。
或者它可能是本地空间,0,2,4,6 | 1,3,5,7
. 在哪里 | 在此示例中拆分两个工作组,即两个工作组和 8 个工作项。
这在OpenCL 1.2 规范的第 3.2 节(执行模型)中进行了描述,但稍后在第 6.12.1 节(工作项功能)中未提及。
global_id(d) = global_offset(d) + local_id(d) + group_id(d) * local_size(d)
global_size(d) = local_size(d) * num_groups(d)
如果 global_offset 为 (0,0,0),则您的假设是正确的。