1. 得到相关软件
1.1. 得到 CUDA driver 、 CUDA toolkit 与 CUDA SDK code samples
vidia 的官网上可以下载得到 CUDA driver 、 CUDA toolkit 、 CUDA SDK code samples 等 CUDA 环境相关文件,例如目前的最新版 3.2 的下载地址是 http://developer.nvidia.com/object/cuda_3_2_downloads.html 。注意选择对应的操作系统和操作系统位数。
1.2. 得到 CUDA VS Wizard
CUDA VS Wizard 可以使我们更加方便的在 VS 中添加 CUDA 项目。在 http://sourceforge.net/projects/cudavswizard/ 可以得到 CUDA VS Wizard ,注意选择对应的操作系统位数,否则将有可能出现 ”Err source: CreatcustomProject ” 等错误信息。
2. 更新显卡驱动
我们得到一个文件名如 devdriver_3.2_winvista-win7_32_263.06_general.exe 的显卡驱动安装文件。选择安装路径开始安装(如果选择了非默认路径会有提示是否改回默认路径)。在安装的过程中可能会有数次黑屏及分辨率调整的过程。
3. 安装 CUDA toolkit
我们下载得到一个文件名如 cudatoolkit_3.2.16_win_32.msi 的文件,执行安装即可。
4. 安装 CUDA SDK code samples
我们下载得到一个文件名如 gpucomputingsdk_3.2.16_win_32.exe 的安装文件,执行安装即可。
5. 安装 CUDA VS Wizard
6. 配置 VS 2008环境
6.1. 语法高亮
如果希望程序可以高亮显示,则需要将 CUDA SDK 安装目录(比如在我的电脑上是 G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\doc\syntax_highlighting\visual_studio_8 )下的 usertype.dat 文件复制到 VS2008 安装目录 Microsoft Visual Studio 9.0\Common7\IDE 下。
6.2. 设置 VS2008 环境
打开 VS2008 ,选择菜单【工具 (Tools) 】 - 【选项 (Options) 】 - 【项目和解决方案 (Projects and Solutions) 】 - 【 VC++ 目录 (VC++ Directories) 】。
在【包含文件 (Include Files) 】中添加(以下需按照自己的安装目录更改路径):
G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\include
G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\inc
在【库文件 (Library Files) 】中添加:
G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\lib\Win32
G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\lib
在【源文件 (Source Files) 】中添加:
G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\src
G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\common\src
选择【 VC++ 项目设置 (VC++ Project Settins) 】,在【 C/C++ 文件扩展名 (C/C++ File Extensions) 】中添加 *.cu ,在【包括的扩展名 (Extensions to Include) 】添加 .cuh 。
选择【文本编辑器 (Text Editor) 】 - 【文件扩展名 (File Extension) 】,在编辑框中填入 cu ,在【编辑器 (Editor) 】下拉菜单中选择 Microsoft Visual C++ ,点击添加。
6.3. 规则添加
此时如果运行 SDK Browser 中 browser.exe 自带的程序能过通过,则配置完成,否则将 CUDA toolkit 安装目录(如 G:\win7 software\NVIDIA GPU Computing Toolkit\CUDA\v3.2\extras\visual_studio_integration\rules )下的四个 rules 文件复制到 G:\win7 software\Microsoft Visual Studio 9.0\VC\VCProjectDefaults 目录下。
6.4. 添加环境变量 / “没有找到 cutil32D.dll ”
添加环境变量(【计算机】 - 【属性】 - 【高级系统设置】 - 【高级】 - 【环境变量】)。随意取一个变量名,在变量值中填入类似如下的目录:
G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\Debug;
G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\Release;
G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\EmuDebug;
G:\win7 software\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\bin\win32\EmuRelease;
在 Path 中添加:
%CUDA_DLL%\Debug;%CUDA_DLL%\Release;%CUDA_DLL%\EmuDebug;%CUDA_DLL%\EmuRelease;
如果没有添加环境变量,将会在运行时报错“没有找到 cutil32D.dll ”或其他。
7. 创建一个新的项目
7.1. 创建一个空项目
打开 VS2008 ,选择菜单栏中的【文件】 - 【新建】 - 【项目】,选择【其他语言】 - 【 Win32 】 - 【 Win32 控制台应用程序】,填写名称创建解决方案。
在 Win32 应用程序向导的【附加选项】中勾选【空项目】。
右击项目名称,选择【自定义生成规则】,勾选【 CUDA Build Rule v3.0.0 】。
右击项目,选择【属性】,选择【配置属性】 - 【链接器】 - 【输入】,在附加依赖项中添加 cudart.lib cutil32D.lib 。否则在编译时会出现类似“ error LNK2019 无法解析的外部符号 ”的错误。
右击【源文件】文件夹,选择【添加】 - 【新建项】,选择【 CUDA 】,填写名称,新建一个 .cu 文件,点击【添加】。
7.2. 使用 CUDA VS Wizard 创建新项目
打开 VS2008 ,选择菜单栏中的【文件】 - 【新建】 - 【项目】,选择【其他语言】 - 【 CUDA 】 - 【 CUDAWinApp 】,填写名称创建解决方案。
生成解决方案后,可以看到如下结构的项目,其中 sample.cu 为示例代码。
将其放到【源文件】文件夹中, Ctrl+F5 运行,可看到如下的执行结果。
=============================================
以上是以正确解决的步骤,今天遇到过的问题包括:
1.CUDA toolkit无法使用迅雷下载,使用迅雷下下来的是一个30k左右的错误文件。
2.目前CUDA VS Wizard项目首页的Download位置下载的是64位版本,应点击“Other Version”下面的“Browse all files”找到32位版本。
3.按照旧版本的配置方法无法找到cuda.rules文件。
4.运行示例程序时出现“没有找到cutil32D.dll”的错误提示。
5.新建一个空项目中后,运行示例代码,编译时出现“error LNK2019 无法解析的外部符号”错误。
=============================================
Reference
[1] 张舒, 禇艳利, 赵开勇, 等. GPU高性能运算之CUDA[M]. 北京: 中国水利水电出版社, 2009.
[2] http://wenku.baidu.com/view/6e2e0d29915f804d2b16c1eb.html
[3] http://mingkook.blog.163.com/blog/static/174238418201011693959676/