在 Windows 下使用 OpenCL

http://www.kimicat.com/opencl-1/zai-windows-xia-shi-yong-opencl

目前,NVIDIA 和 AMD 的 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 中,會建立一個環境變數 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 Express 設定的範例:

NVIDIA 的 CUDA SDK:

(转)在 <wbr>Windows <wbr>下使用 <wbr>OpenCL
(转)在 <wbr>Windows <wbr>下使用 <wbr>OpenCL

特 別注意的是,因為 NVIDIA 的 SDK 在區分 32 bits 及 64 bits 版本程式庫所使用的目錄名稱(Win32 及 x64)和 Visual Studio 2008 內建的 $(PlatformName) 是一致的,因此可以直接使用。AMD 的 SDK 就要分別設定了。另外,如果使用的是 32 bits 的 SDK,則不包括 64 bits 的 library,因此路律就不需要再加上$(PlatformName)

以下是 AMD SDK 的設定方式:

(转)在 <wbr>Windows <wbr>下使用 <wbr>OpenCL
(转)在 <wbr>Windows <wbr>下使用 <wbr>OpenCL

最後,把 OpenCL.lib 加到程式庫裡面就可以了(這點對兩個 SDK 都是一樣的):

(转)在 <wbr>Windows <wbr>下使用 <wbr>OpenCL

最後再順便提到一個小地方。在 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 下都能使用了。



1. 配置.cl文件支持:

1.1. 打开VS2008, 工具->选项->文本编辑器->文件扩展名,添加一个新的扩展名,指定编辑器为Microsoft Visual C++ 。这样在OpenCL文件中就能显示C++的语法高亮了。

1.2. 配置OpenCL语法高亮
- 打开目录~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\doc 可以看到有一个"usertype.dat"文件其中包含了所有的OpenCL的关键字。
- 将这个文件复制到 ~\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
IMPORTANT NOTE: 如果已经有usertype.dat文件存在,则用文本编辑器打开OpenCL目录下的该文件,复制其中内容并拷贝到原文件中。

2. 配置项目

新建一个新的VC项目之后,右键点击项目->属性(也可以按快捷键ALT+F7)
1. 在 配置属性->C++->常规->附加包含目录 中添加:

  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\common\inc";
  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\shared\inc";


2. 在 链接器->常规->附加库目录 中添加:

  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\common\lib\Win32"; (if you are using Windows 32)
  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\shared\lib\Win32";


3. 在链接器->输入->附加依赖项 中添加

  • shrUtils32D.lib
  • OpenCL.lib
  • oclUtils32D.lib

3. 配置代码生成属性

到这里其实已经可以编译OpenCL代码了。 最后一步需要做的是点击 项目->属性配置属性->C++->代码生成 中. 将 运行时库 修改成"多线程调试 (/MTd)".



转载自http://opencl.codeplex.com/wikipage?title=OpenCL Tutorials - 0&referringTitle=OpenCL Tutorials 

Hi,
I've decided to create this short tutorial to help programmers to setup Visual Studio 2008 as an OpenCL developement environment.
Notice that I'm using the NVIDIA version of OpenCL (CUDA SDK 3.0), installed in the default path (C:\Documents and Settings\All Users\Dados de aplicativos\NVIDIA Corporation\, which from now on will be referenced as ~\NVIDIA Corporation). If you are using ATI drivers, other NVIDIA driver or other Windows version (I'm using XP) you may have to update the paths.

1. Configuring Appearance:

1.1. OpenCL files as C++ files:
In VS2008,
- Go Tools->Options->Text Editor->File Extension, add a new extension "cl" and select Microsoft Visual C++ as Editor. This will enable C++ syntax highlighting on OpenCL files;
- If you wish, you can also add "cu" extensions for CUDA

1.2. Syntax highlighting (for OpenCL reserved words)
- This should be done using a file called "usertype.dat", located at ~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\doc, which contains all OpenCL reserved words
- Copy this file to ~\Program Files\Microsoft Visual Studio 9.0\Common7\IDE (again, it may change depending on your OS version)
- This can be done also for CUDA reserved words. CUDA configuration file is at ~\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\doc\syntaxhighlighting\visualstudio_8 (its also called "usertype.dat"
- IMPORTANT NOTE: if there is already an "usertype.dat" on your VS folder (what should happen when adding CUDA and OpenCL files), you should merge both (copying the content of one and pasting at the end of the other)

2. Setting Up a Project

All you must do to use VS and OpenCL is configure correctly the dependencies. After creating a new VC project, right click on the project->properties (also available up in the menu or with the shortcut ALT+F7
1. At Configuration Properties->C++->General->Additional Include Directories add:
  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\common\inc";
  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\shared\inc";

2. At Linker->General->Additional Library Directories add:
  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\common\lib";
  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\OpenCL\common\lib\Win32"; (if you are using Windows)
  • "~\NVIDIA Corporation\NVIDIA GPU Computing SDK\shared\lib";

3. At Linker->Input->Additional Dependencies add
  • shrUtils32D.lib
  • oclUtils32D.lib
  • OpenCL.lib

3. Configuring Code Generation Properties

We're almost ready to use OpenCL now. The final step you need to do is clicking on Project->Properties, and then Configuration Properties->C/C++->Code Generation. You must assert the property "Runtime Library" is set to "Multi-threaded Debug (/MTd)". This property specifies wheter the Runtime Library will be statically or dynamically linked to your project. If your project and the libraries it uses are compiled and linked with different runtime libraries, some weird linker errors will happen. Since the '.libs' we just added uses the static runtime library, our project needs to use it as well. More information about this can be found inhttp://www.cs.unc.edu/~lhp/personal/how2CompileInVC.html.

It's ready. You may now be able to create and compile successfully an OpenCL project using VS2008

Feel free to contact us if you have any doubts.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值