OpenCL构建错误

时间:2013-11-21 11:23:40

标签: java parallel-processing kernel opencl

如果我意外地在我的OpenCL内核中引用了一个不存在的函数,即使我修复了问题,编译器的行为也好像我没有。例如。

__kernel void doSomething(__global unsigned int *array){
    f(array)
}

显然f不存在,我会收到错误。但是,如果我编写f方法,编译器会继续发出此错误。

Exception in thread "main" org.jocl.CLException: CL_BUILD_PROGRAM_FAILURE
Build log for device 0:
kernel referenced an external function f, that could not be found.

无论我改变什么,我都可以删除任何内核的主体,以便.cl最终不包含代码,编译器仍然导致此错误。即使创建新文件并将内容复制到其中,或更改程序参数或名称也无效。我坚持这个错误。重新启动计算机也不起作用。

修改

我在MacBook Pro 10.9版上运行它

1 个答案:

答案 0 :(得分:1)

我过去遇到过OpenCL缓存代码问题,这解决了我的问题。

// Setting this environment variable forces the OpenCL 
// source code to be recompiled every time.
setenv("CUDA_CACHE_DISABLE", "1", 1);

当然,只有在您使用NVIDIA平台时,这才有意义。