opencl get_local_id 或 get_global_id 在内核调用的函数中

opencl get_local_id or get_global_id in a function called by the kernel

假设我有一个这样的.cl

void func(whatever){
   int id = get_global_id(0);
   do stuff;
}

__kernel void (whatever){
    func(whatever);
}

func 是否能够像 get_global_id 一样访问特定于线程的函数?必须手动内联所有这些函数会很烦人,并且会使代码的可读性大大降低。

是的,所有函数都可以使用像 get_global_id() 这样的工作项函数。在从内核调用的函数中,您唯一不能做的就是声明一个函数作用域本地内存数组。