3

我想将内核函数中声明的本地内存传递给另一个函数进行一些处理。我想控制它,以便我的所有指针也都在本地空间中声明:

void funcB(__local float * __local p)
{
}

__kernel void funcA()
{
    __local float data[256];
    __local float * __local ptr;
    ptr = data;
    funcB(ptr);
}

并且 funcB 声明不起作用,因为:错误:参数可能没有用地址空间限定

有没有办法做这样的事情?谢谢!

4

1 回答 1

3

从 OpenCL Spec 1.2 第 6.5.4 节:

非内核函数内的所有变量,以及所有函数参数都在 __private 或私有地址空间中。

由于非内核函数是内联的,所以我不确定你想通过这样做来完成什么。

于 2013-03-26T06:03:06.037 回答