我试图在OS X El Capitan 10.11.2上的C ++项目中编译一组OpenCL内核。
使用的机器是iMac(Retina 5K,27英寸,2015年末),包含AMD Radeon R9 M395X 4096 MB,被选为OpenCL设备。我正在使用操作系统附带的OpenCL框架。
在特定内核上,使用此CL_PROGRAM_BUILD_LOG,OpenCL程序构建失败:
SC失败了。没有理由。
在选择与OpenCL设备相同的机器的CPU或具有Nvidia GPU的类似机器时,相同的内核编译正常。
答案 0 :(得分:3)
有问题的内核源可以归结为以下内容:
kernel void sampleKernel (bool param) {}
OpenCL C规范不支持使用bool
作为OpenCL内核的参数,请参阅例如https://stackoverflow.com/a/4441865/463796
用char
替换参数的类型可以解决问题。