使用运行OpenCL程序的AMD C ++绑定和SDK(最新版本)获取平台,GPU,然后编译4个内核在启动时出现上述错误。它在我的计算机上工作正常,其GPU仅支持1.1,但其他计算机似乎有上述错误。这是编译中的问题(因为,我必须定义一些宏),缺少驱动程序,C ++绑定或其他什么?我没有在我自己的代码中显式调用clRetainDevice - 它是绑定的一部分吗?
答案 0 :(得分:2)
当您使用带有OpenCL 1.2标头的C ++绑定头文件时,会发生这种情况。例如,在NVIDIA平台上运行使用AMD SDK(OpenCL 1.2)编译的应用程序时(仅限OpenCL 1.1)。
快速而肮脏的解决方法,您只需编辑AMD SDK cl.h标头和undef“CL_VERSION_1_2”预处理器符号即可。如果您对1.2功能不感兴趣,它应该可以解决您的问题。