我在使用时遇到问题__持续的我的 OpenCL 内核中的限定符。我的平台是雪豹。
我尝试在 GPU 上初始化 CL 只读内存对象,将常量数组从主机复制到其中。然后我设置内核参数就像__global内存参数,但这不起作用,但我没有看到任何错误或警告。我还尝试直接在 clSetKernelArg 函数中使用数据,就像float and int类型,它都不起作用。
我是否犯了任何错误,或者苹果的实施有问题吗?我希望看到如何完成此操作的任何工作示例,包括 OpenCL(GPU)和主机代码。
我怀疑苹果的实施是否存在如此根本的错误。我用了以下OpenCL Hello World 示例 http://developer.apple.com/mac/library/samplecode/OpenCL_Hello_World_Example/index.html应用程序让我了解基础知识。
在这个例子中我替换了__global float* input
with __constant float* input
效果很好。您还需要确保您的缓冲区是CL_MEM_READ_ONLY
,使用类似的东西clCreateBuffer(context, CL_MEM_READ_ONLY, sizeof(float) * count, NULL, NULL)
.
通过阅读规范,我认为 __constant => __global + CL_MEM_READ_ONLY。
我在 MBP 15" 上运行 Snow Leopard。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)