get_global_id 是否包括偏移量?

Does get_global_id include offset?

如果我 运行 内核通过使用全局工作项偏移量调用 clEnqueueNDRangeKernel,get_global_id return 偏移值还是我应该手动偏移它?

size_t offset[1] = { some value};
clEnqueueNDRangeKernel(..., &offset[0], ...);

正确的方法是: int id = get_global_id(0) 或者 int id = get_global_id(0) + get_global_offset(0);?

是的,get_global_id(0) 确实包括 clEnqueueNDRangeKernel 中指定的偏移量。例如,如果将内核偏移量设置为 50,将内核范围设置为 100,则 get_global_id(0) 将从 50 计数到 149。