在nvidia gpus上编译OpenCL 1.2代码

时间:2015-08-21 16:48:06

标签: opencl nvidia

我要编译一大堆需要OpenCL 1.2的代码。据我了解,nVIDIA已经发布了OpenCL 1.2驱动程序。我安装了最新的CUDA Toolkit 7.0版。但是当我编译代码时,我得到的错误如下:

Error   9   error LNK2001: unresolved external symbol clReleaseDevice   C:\Users\???\Downloads\FireRaysSDK-1.0\FireRaysSDK-1.0\App\CLW64.lib(CLWParallelPrimitives.obj) App
Error   7   error LNK2001: unresolved external symbol clRetainDevice    C:\Users\???\Downloads\FireRaysSDK-1.0\FireRaysSDK-1.0\App\CLW64.lib(CLWContext.obj)    App

之后我从khronos网站下载OpenCL 1.2的头文件。现在,它编译但我得到unresolved external link这些函数,因为它们的实现不在OpenCL.lib中。

我可以使用OpenCL.lib来编译OpenCL 1.2代码吗?有没有办法从DLL文件中获取它们的实现?因为我知道nvidia已经为其驱动程序添加了opencl 1.2支持。

1 个答案:

答案 0 :(得分:3)

您是正确的,NVIDIA现在在其最新驱动程序中提供OpenCL 1.2支持,但CUDA 7.0 SDK在这些驱动程序发布之前的某个时间发布,因此可能不包含OpenCL 1.2标头或库。我刚检查了CUDA 7.5 Release Candidate,它似乎附带了您需要的OpenCL 1.2库。

您可以链接任何OpenCL 1.2库,它应该与NVIDA的驱动程序一起使用。您应该只能从AMDIntel安装SDK,或者只需下载并构建OpenCL 1.2 Installable Client Driver (ICD) Loader directly from Khronos

相关问题