我想将我的内核函数中声明的本地内存传递给另一个函数进行一些处理。我想控制它,以便我的所有指针也在本地空间中声明:
void funcB(__local float * __local p)
{
}
__kernel void funcA()
{
__local float data[256];
__local float * __local ptr;
ptr = data;
funcB(ptr);
}
和funcB声明不起作用,因为: 错误:参数可能无法使用地址空间限定
有没有办法做这样的事情?谢谢!
答案 0 :(得分:3)
来自OpenCL Spec 1.2第6.5.4节:
非内核函数中的所有变量,所有函数参数都在__private或私有地址空间中。
由于非内核函数是内置的,所以我不知道你想要通过这样做完成什么。