2

使用 AMD C++ 绑定和 SDK(最新的)运行一个 OpenCL 程序,该程序获得一个平台、一个 GPU,然后编译 4 个内核,在启动时会出现上述错误。它在我的电脑上运行良好,它的 GPU 只支持最高 1.1,但其他电脑似乎有上述错误。这是编译中的问题(如,我必须定义一些宏),缺少驱动程序,C++ 绑定还是其他问题?我没有在我自己的代码中显式调用 clRetainDevice——它是某处绑定的一部分吗?

4

1 回答 1

2

当您将 C++ 绑定头文件与 OpenCL 1.2 头文件一起使用时,就会发生这种情况。例如,当您在 NVIDIA 平台(仅限 OpenCL 1.1)上运行使用 AMD SDK (OpenCL 1.2) 编译的应用程序时。

作为快速而肮脏的工作,您只需编辑 AMD SDK cl.h 标头和 undef "CL_VERSION_1_2" 预处理器符号。如果您对 1.2 功能不感兴趣,它应该可以解决您的问题。

于 2013-03-17T14:59:14.650 回答