CUDA: Windows下CUDA的软件开发环境搭建

本文详细介绍如何在Windows环境下使用Visual Studio 2005搭建CUDA软件开发环境,包括CUDA安装包的选择与安装、环境变量配置、VS项目的配置方法及使用CUDA_VS_Wizard插件简化配置流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CUDA: Windows下CUDA的软件开发环境搭建

本文我们以Visual Studio 2005 为例演示CUDA的安装以及软件开发环境搭建。

  CUDA安装包

  CUDA是免费使用的,各种操作系统下的CUDA安装包均可以在http://www.nvidia.cn/object/CUDA_get_cn.html上免费下载。CUDA提供3个安装包,分别是: Driver, Toolkit和SDK。SDK包括许多例子程序和函数库。Toolkit包括CUDA的基本工具。安装时按照顺序,先安装Driver,再Toolkit,最后SDK。

  CUDA toolkit

  安装后在NVIDIA_CUDA_toolkit安装目录下出现6个文件夹,分别是:

  1. Bin : 工具程序和动态链接库
  2. Doc : 相关文档
  3. Include : header头文件包
  4. Lib : 程序库
  5. Open64 : 基于open64的CUDA compiler
  6. Src : 部分原始代码

  安装过程中toolkit自动设定了3个环境变量:CUDA_BIN_PATH、CUDA_INC_PATH和CUDA_LIB_PATH分别对应工具程序库、头文件库和程序库,预设路径为当前安装文件夹下的bin、include 和lib三个文件夹。

  CUDA SDK

  SDK可以根据需要选择安装(推荐安装,因为SDK中的许多例子程序和函数库非常有用。

  CUDA Display

  对于没有安装NV显卡的计算机,不需要安装Display安装包,程序也可以在模拟模式下运行。


  CUDA配置方法

  CUDA的主要工具是nvcc,它会执行所需要的程序,将CUDA程序编译并执行。本文将介绍在windows环境下,基于VS 2005IDE环境下的几种配置CUDA nvcc的方法。

  NVIDIA自带的修改模板方法

  在CUDA SDK安装目录下的project目录下新建文件夹,命名为想要建立的工程名字,比如test1。并在project文件夹下找到SDK自带的template文件夹,将template文件夹下所有的文件copy到test1下。

  将copy到test1文件夹下的所有文件文件名中的template改为test(也即是自己的工程文件名字)。test.sln与test.vcproj是vs 8系列的工程文件,test_vc7.sln与test_vc7.vcproj是vs 7系列的工程文件,可以根据自己Visual Studio的版本选择要更改的工程文件,其它两个可以删除。在Visual Studio C++ 2005 Express中,删除test_vc7.sln与test_vc7.vcproj即可。

  将*.cu、*.sln和*.vcproj用记事本等文字编辑软件打开,使用查找替换功能将以上文件中所有的template改为test。

  使用*.sln文件打开整个工程,可以任意更改代码,编译运行。

  修改输出文件路径(可选,如不改变,可执行文件输出到上两级目录下的bin目录中),如使用了CUDA SDK中的动态链接库,将相应的动态链接库拷贝到可执行文件的同一目录下。

  总结:这种方法是NV公司为windows下使用vs编译CUDA提供的标准方法(参见\SDK\doc\CUDA_SDK_release_notes_windows.txt), 使用公司提供的模板更改为自己想要建立的工程,也可以参照以上方法,在SDK Project库中的找到与自己想建立工程相近的其它工程做更改。

  在Win32项目中建立.cu文件

  首先建立一个C++的win32的控制台应用程序empty project,并添加一个新的源文件,此处以main.cu为例。

  P1.建立一个win32 project

  设定为empty project

  P3.建立一个CUDA程序专用的main.cu文件

  在solution explorer 中main.cu上右键单击,选择property。在打开的对话框中选择General,确定Tool的选项是Custom Build Tool。

  确认Tool选项为Custom build Tool。

  选择Custom Bulid Step,在Command Line中分别设定模式参数。这里要分几种编译方式来设定命令行参数。

  (1)、Release 模式:"$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VCInstallDir)bin" -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT -I"$(CUDA_INC_PATH)" -o $(ConfigurationName)\$(InputName).obj $(InputFileName)

  (2)、Debug 模式:"$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VCInstallDir)bin" -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd -I"$(CUDA_INC_PATH)" -o $(ConfigurationName)\$(InputName).obj $(InputFileName)

  如果计算机中没有安装NV显卡,使用模拟模式,需增加两个额外的设定。新建两个模式EmuRelease和EmuDebug。

  P6.新建模式(1)

  P6.新建模式(2)

  对新建立的EmuRelease和EmuDebug的Command Line分别设定为:

  (1)、EmuRelease 模式:"$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VCInstallDir)bin" -deviceemu -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT -I"$(CUDA_INC_PATH)" -o $(ConfigurationName)\$(InputName).obj $(InputFileName)

  (2)、EmuDebug 模式:"$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VCInstallDir)bin" -deviceemu -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd -I"$(CUDA_INC_PATH)" -o $(ConfigurationName)\$(InputName).obj $(InputFileName)

  3.1.4、对所有的设定模式,均在 Custom Build Step 的 Outputs 中加入 $(ConfigurationName)\$(InputName).obj

  P7.设定Outputs

  右键单击project,选择Property,再选择Linker,对所有模式修改以下设定:

  (1)、General/Enable Incremental Linking:No

  (2)、General/Additional Library Directories:$(CUDA_LIB_PATH)

  (3)、Input/Additional Dependencies:CUDArt.lib

  P8.设定Linker参数(1)

  P9.设定Linker参数(2)

  设置头文件路径Tools -> Options,弹出以下对话框

  将右边的下拉框选择Include Files,点击添加按钮,将C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\common\inc选入到头文件搜索路径中。

  选择链接库文件路径

  同上库头文件路径选择,将右边下拉框选择Library File,选择路径C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\common\lib

  完成,可以编写CUDA程序,并直接编译执行了(编译方式于C++相同)

  总结:这种方法既不需要借助模板,也不需要使用第三方的软件。但是操作相当复杂,而且仅对配置的单个project有效。如果重新建立一个project又要重新配置一遍。

  需要注意的是,当需要使用CUDA SDK中的动态链接库(以dll为后缀)时,将动态链接库和生成的可执行文件放在同一个路径下。

  如果是driver API,需要添加”CUDA.lib CUDArt.lib”,头文件#include ,#include。

  使用CUDA_VS_Wizard插件

  下载CUDA_VS_Wizard插件并安装。

  将CUDA安装目录下的bin和CUDA SDK安装目录下的bin\win32文件夹下的四个文件夹(Debug, EmuDebug, Release, EmuRelease)的路径全部加入环境变量中的path变量中。

  使用vc直接建立工程。在工程选项里选择CUDAWinApp。

  如果是在模拟模式下运行,需要在解决方案中右键属性,在Configuration Properities 中将Configuration 设置为Emu模式。

  模拟模式设置(1)

  模拟模式设置(2)。

  总结:这种方法虽然使用了第三方的工具,但只需要配置一次即可,而且配置简单,以后每次建立CUDA程序都可以直接生成。如果是建立预定义头文件的工程,则建立的CUDA程序,会自带一个sample.cu,可以选择在sample.cu的基础上更改或删除sample.cu重新建立.cu文件。如果是建立空工程则没有。建立方法.cu文件的方法是建立.cpp文件或.txt文件改名为.cu文件即可。推荐使用。

  语法高亮设置

  找到CUDA SDK安装目录下doc\syntax_highlighting\自带的文件usertypt.dat,将其copy到Microsoft Visual Studio 安装目录的\Common7\IDE下。

  在Visual Studio中做以下设置: 在Tools-> Options ->Text Editor-> File Extension中添加cu。编辑方式Microsoft Visual C++。

  P16.设置高亮

  重新启动Visual Studio,完成高亮设置。

  3.配置生成规则。将SDK目录下C/common目录下的CUDA,rules拷贝到VS安装目录下的VC\VCProjectDefaults子目录下。建立一个 Win32工程,并在项目上右击,选择custombuildrules,在CUDA build rule前打勾。在工程中新建一个.cu文件,右击属性后查看自定义生成规则是否已经是CUDA build rule。


http://tech.it168.com/a2011/0710/1215/000001215745.shtml


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值