做企业宣传网站,网站虚拟主机虚拟空间,清博舆情系统,网站备案地点前言
目前#xff0c;NVIDIA 和 AMD 的 Windows driver 均有支持OpenCL#xff08;NVIDIA 的正式版 driver 是从自195.62 版开始#xff0c;而 AMD则是从9.11 版开始#xff09;。NVIDIA 的正式版 driver 中包含 OpenCL.dll#xff0c;因此可以直接使用。AMD 到目前为止…前言
目前NVIDIA 和 AMD 的 Windows driver 均有支持OpenCLNVIDIA 的正式版 driver 是从自195.62 版开始而 AMD则是从9.11 版开始。NVIDIA 的正式版 driver 中包含 OpenCL.dll因此可以直接使用。AMD 到目前为止则仍需要安裝其 SDK 才有 OpenCL.dll。不过在最新的 SDK 中NVIDIA 和 AMD 使用的 calling convention 是相同的。也就是说使用 AMD 的 SDK编译的 OpenCL 程式可以直接在 NVIDIA 的 driver 下运作。反过来也是一样。AMD 的 OpenCL SDK 是在 AMD Stream SDK 2.8.1里面。NVIDIA 的OpenCL SDK 則包括在最新的 CUDA 5.5 SDK 中。两个 SDK 可以同时安裝在同一部电脑中基本上不会有冲突的问题。
由于OpenCL SDK 的重点只是在 header file 和程序库因此设定上是很简单的。在 AMD 的 SDK 中会建立一个环境 ATISTREAMSDKROOT。Header files 就在include 目录中而程序库则在lib里面。NVIDIA 的 SDK 也是类似有一个环境为NVSDKCOMPUTE_ROOT。不过因办 NVIDIA 的 SDK 同时包括 CUDA 及 OpenCL因此它的 header files 是在OpenCL\common\inc 目录里而程序库是在OpenCL\common\lib 里面。
由于程序库的部分还有一点特別需要注意的是AMD 和 NVIDIA 都有提供 32 bits 及 64 bits 的程序库供32 bits 及 64 bits 的程序使用。NVIDIA 的 SDK 中32 bits 的程序库是在lib 目录下的 Win32 目录里而 64 bits 的则是在 x64 目录里。AMD 的 SDK 中则分別是在 x86 及 x86_64 目录里。 配置方法 以下是使用 Visual Studio 2008 设定。 NVIDIA 的 CUDA SDK 特別注意的是因为 NVIDIA 的 SDK 在區分 32 bits 及 64 bits 版本程式庫所使用的目录名称Win32 及 x64和 Visual Studio 2008 內建的 $(PlatformName) 是一致的因此可以直接使用。AMD 的 SDK 就要分別设定了。另外如果使用的是 32 bits 的 SDK則不包括 64 bits 的 library因此路经就不需要再加上$(PlatformName)。 AMD的SDK 最后把 OpenCL.lib 加到程序库里面就可以了这点对两个SDK 都是一样的 最后再顺便提到一个地方。在 MacOS X 中OpenCL 的 header是存在 OpenCL 目录中也就是 #include OpenCL/opencl.h 但是在 Windows 下以及可能所有其它的 OS 下都是 #include CL/cl.h 因此如果想要让同一个程序可以同时在各 OS 下都能编译的话在 include 写成 #ifdef __APPLE__ #include OpenCL/opencl.h #else #include CL/cl.h #endif 这样就可以同时在 MacOS X 下以及其它的 OS 下都能使用了。