在函数参数中将OpenCL指针存储到本地内存中的本地内存中?

3
我希望把在我的内核函数中声明的本地内存传递给另一个函数进行一些处理。我想控制它,使得所有指针都在本地空间中声明:
void funcB(__local float * __local p)
{
}

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

funcB声明不起作用,因为出现以下错误: 错误:参数不能带有地址空间限定符

是否有类似这样的解决方法?谢谢!


这可能会有所帮助:http://stackoverflow.com/questions/11978024/opencl-store-pointer-to-global-memory-in-local-memory - Thomas
那篇文章方向正确,但没有提到它作为函数参数的用法。无论如何还是谢谢! - bluesy
1个回答

3
从OpenCL规范1.2的6.5.4节中可以得知:所有非内核函数内的变量和所有函数参数都在__private或私有地址空间中。由于非内核函数是内联的,因此我不确定您想通过这种方式实现什么目的。

那似乎就是答案。谢谢。 - bluesy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接