[2011.03.02] Win7(32 bits)+VS2008下CUDA环境的安装与配置

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 为示例代码。

 

[2011.03.02] Win7(32 bits)+VS2008下CUDA环境的安装与配置

       将其放到【源文件】文件夹中, Ctrl+F5 运行,可看到如下的执行结果。


[2011.03.02] Win7(32 bits)+VS2008下CUDA环境的安装与配置

 

=============================================

 

以上是以正确解决的步骤,今天遇到过的问题包括:

 

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/

你可能感兴趣的:(C++,c,C#,Microsoft,vc++)