如果我们有一个2D索引空间,其工作组大小为(14,30),那么全局ID是多少。如果工作组(2,3)中的内核的特定执行具有
get_local_id(0) = 5 and get_local_id(1) = 7
get_global_id(0)和get_global_id(1)会是什么?我实际上没有当地的大小!
我们如何计算?
它是否等于
get_global_id(0) = 5*2 = 10
get_global_id(1) = 3*7 = 21
答案 0 :(得分:1)
您需要知道当地的大小。谢天谢地,你可以通过调用get_local_size来获得它。它将始终返回有效值。
假设没有偏差,它就是这样:
get_global_id(0) = get_local_id(0)+get_local_size(0)*get_group_id(0)
请记住,即使您使用NULL作为本地大小调用内核,实现也会生成一些内容,以便始终获得有效值。