欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

在Windows 下使用OpenCL

发布时间:2023/12/18 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 在Windows 下使用OpenCL 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目前,NVIDIAAMD的Windows driver均有支援OpenCL(NVIDIA的正式版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.0里面,目前是beta 4。NVIDIA的OpenCL SDK则包括在最新的CUDA 3.0 SDK beta中。两个SDK可以同时安装在同一 部电脑中,基本上不会有冲突的问题。 由于OpenCL SDK的重点只是在header file和程式库,因此设定上是很单纯的。在AMD的SDK中,会建立一个环境变数  ATISTREAMSDKROOTHeader 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 Express 设定的范例: 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 10.6 中,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 10.6 下,以及其它的OS 下都能使用了。

总结

以上是生活随笔为你收集整理的在Windows 下使用OpenCL的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。