get_global_id是否包括偏移量



如果我通过调用具有全局工作项偏移量的clEnqueueNDRangeKernel来运行内核,get_global_id是否返回偏移值,或者我应该手动偏移它?

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。

最新更新