在 nvidia gpus 上编译 OpenCL 1.2 代码
Compiling OpenCL 1.2 codes on nvidia gpus
我要编译一大块需要 OpenCL 1.2 的代码。据我了解,nVIDIA 已经发布了 OpenCL 1.2 驱动程序。我已经安装了最新的 CUDA 工具包,它是 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 支持添加到其驱动程序中。
您说得对,NVIDIA 现在在其最新驱动程序中提供 OpenCL 1.2 支持,但 CUDA 7.0 SDK 是在这些驱动程序发布之前的某个时间发布的,因此可能不包含 OpenCL 1.2 headers 或库。我刚刚检查了 CUDA 7.5 Release Candidate,它似乎附带了您需要的 OpenCL 1.2 库。
您可以link针对任何 OpenCL 1.2 库,它应该可以与 NVIDA 的驱动程序一起使用。您应该只能从 AMD or Intel, or just download and build the OpenCL 1.2 Installable Client Driver (ICD) Loader directly from Khronos.
安装 SDK
我要编译一大块需要 OpenCL 1.2 的代码。据我了解,nVIDIA 已经发布了 OpenCL 1.2 驱动程序。我已经安装了最新的 CUDA 工具包,它是 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 支持添加到其驱动程序中。
您说得对,NVIDIA 现在在其最新驱动程序中提供 OpenCL 1.2 支持,但 CUDA 7.0 SDK 是在这些驱动程序发布之前的某个时间发布的,因此可能不包含 OpenCL 1.2 headers 或库。我刚刚检查了 CUDA 7.5 Release Candidate,它似乎附带了您需要的 OpenCL 1.2 库。
您可以link针对任何 OpenCL 1.2 库,它应该可以与 NVIDA 的驱动程序一起使用。您应该只能从 AMD or Intel, or just download and build the OpenCL 1.2 Installable Client Driver (ICD) Loader directly from Khronos.
安装 SDK