AMD GPU+VS2010的OpenCL配置
安装开发环境可以参照DE4-530的OpenCL开发环境搭建(最终版),这篇文章的大部分内容转载自:http://www.verydemo.com/demo_c92_i226325.html
AMD的Heterogeneous Computing有很多AMD的OpenCL资料,包括各种分析工具,是个很不错的OpenCL学习站点。
因为该文章写的还不错,所以就偷懒直接转载过来了,当然还加了一些自己所遇到的问题解决方法。
首先你要装好催化剂显卡驱动。
安装AMD APP SDK
下载AMD APP SDK安装包,比如64的就叫AMD-APP-SDK-v2.4-Windows-64.exe,安装AMD APP SDK,如图1。
图1
安装完之后重新启动。
首先知道一下安装的位置,我这里按默认装在了 C:\Program Files (x86)\AMD APP\ ,如图2。
图2
系统安装的时候系统已经设置了一个环境变量AMDAPPSDKROOT来指示安装的位置,可以在cmd里查看,如图3。
图3
系统也已经把可执行路径加到了PATH里,这样就可以找到OpenCL的运行库。如图4。
图4
生成OpenCL工程
打开一个已有的OpenCL项目,或者新建一个项目。
如果新建项目,点击文件->新建,建立一个空项目。加入一个自己写的HellowCL之类的源码,如果没有,我这里写了一个初始化的小源码,诸位可以自行下载添加,结果如图5。OpenclConfig.cpp
图5
配置OpenCL工程
如果不进行配置的话,则会在“生成->生成解决方案”时,提示以下错误
“fatal error C1083: 无法打开包括文件:“CL/cl.h”: No such file or directory”
所以,需要进行以下配置
因为安装包已经在系统的PATH路径里加入了动态链接库的路径,所以就没有必要再在VS里添加了,我们需要做的就是添加需要的包含目录和库目录,为了同时兼容32位和64位系统,需要对32位系统和64位系统差异对待。如果你只考虑单个平台下的配置,那么只需要以下内容中相应平台的配置即可。
64位独有的配置
由于默认的环境是Win32,我们在这里添加一个x64的平台支持,前提是你安装了64位的编译器,如果你不需要64位,那么往下看即可。直接进入“一. 通用配置”。
1. 左侧项目名右键->属性
2. 看到属性页窗口之后,点击右上方的配置管理器,
3. 在配置管理器中下拉,选择<新建>
4. 在键入或选择新平台中下拉,选择x64,确定
以上过程如图6。
图6
一、通用配置,32位和64位都得有的,打开项目属性页:
(1)左上角配置选所有配置,平台选所有平台
(2)C/C++->常规->附加包含目录添加$(AMDAPPSDKROOT)include,如图7。
图7
(3)链接器->输入,附加依赖项里加入OpenCL.lib,如图8。
二、32位独有的配置,项目属性页中:
(1)左上角配置选所有配置,平台选Win32
(2)链接器->常规附加库目录,加入$(AMDAPPSDKROOT)lib\x86,如图9。
图9
三、64位独有的配置,项目属性页中:
(1)左上角配置选所有配置,平台选x64
(2)链接器->常规附加库目录,加入$(AMDAPPSDKROOT)lib\x86_64,如图10。
图10
以上配置完成之后即可编译运行,在上面给出的代码中,如果看到图11,说明编译运行成功。(由于程序不同,所以我的现象不是这样的,结果在后面的图中)
图11
如果32位和64位的都配置好了,可以在工具栏里选择Debug/Release,Win32/x64的任意组合进行编译。
望大家Coding愉快!
此时点击“生成 -> 生成解决方案”成功,不会有任何问题
调试OpenCL工程
点击绿色按钮(启动调试),此时出现如下信息:
“已加载“C:\Windows\System32\IPHLPAPI.DLL”,Cannot find or open the PDB file”
进入“调试 -> 选项和设置 -> 调试 -> 符号”,把“Microsoft符号服务器”选中。如图12。
图12
这个时候则基本能运行我们的程序。(虽然还有部分同样的信息,但是貌似不影响)
我所运行的程序是“AMD APP\samples\opencl\cl\app\HelloWorld”的程序(在安装AMD APP SDK后会有这样的实例文件夹),输出“HelloWorld”则表示运行成功,由于正常调试时输出显示窗口一晃而过,所以我在释放资源之前加了一个断点进行调试。其结果为图13。
图13
至此,则将VS2010的OpenCL程序基本运行成功,可以进行下一步的学习!