vs2005开发cuda3.2环境配置
vs2005开发cuda环境配置
下面记录的是在vs2005中开发cuda应用程序的配置过程,使用的路径均为默认路径。
安装、配置步骤:
1、安装visual studio 2005环境。
2、安装开发助手visual assist x。
3、安装cuda的驱动、工具集、sdk。
可以从http://developer.nvidia.com/object/cuda_3_2_downloads.html免费下载。
4、语法高亮:
查看c:/program files/microsoft visual studio 8/common7/ide目录是否存在usertype.dat文件。
如果没有存在则将c:/program files/nvidia gpu computing sdk/doc/syntax_highlighting/visual_studio_8里面的usertype.dat文件拷贝到此目录;
如果已经存在则将c:/program files/nvidia gpu computing sdk/doc/syntax_highlighting/visual_studio_8里面的usertype.dat的内容添加到c:/program files/microsoft visual studio 8/common7/ide/usertype.dat文件的尾部。
5、设置vs2005环境:
依次打开“工具|选项|项目和解决方案|vc++目录”,添加:
包含文件:c:/program files/nvidia gpu computing toolkit/cuda/v3.2/include
c:/program files/nvidia gpu computing sdk/c/common/inc
库文件: c:/program files/nvidia gpu computing toolkit/cuda/v3.2/lib/win32
c:/program files/nvidia gpu computing sdk/c/common/lib
源文件: c:/program files/nvidia gpu computing sdk/c/common/src
依次打开“工具|选项|文本编辑器|文件扩展名”,在扩展名中添加“cu”,在编辑器中选择“microsoft visual c++”。
6、在vs2005中依次打开“工具|选项|项目和解决方案|vc++项目设置”里面的“c/c++文件扩展名”添加*.cu;
在规则搜索路径中c:/program files/nvidia gpu computing sdk/c/common,指定cuda.rules所在的路径。
7、在vs2005中新建工程,在工程名上鼠标右击,在弹出菜单中选择菜单项“自定义生成规则”,选择要添加的规则文件,
如:“cuda build rule v3.0.14”。
在工程中添加.cu文件,右键点击cu文件,在弹出菜单中依次选择“属性|配置属性|常规”,在“工具”的下拉列表中选择生成规则的名称,例如“cuda build rule v3.0.14”,单击“确定”即可。
顺便说明一下,在下载文件中有一个“cudatoolkit_3.2_win_buildrules-patch.zip”,解压后其实是编译驱动级别的api及编译运行时api的规则文件,可以将它们拷贝到一个目录, 如上所示指定该目录即可编译驱动级别的api和编译运行时api。
8、visual assist x设置:
关闭已经所有打开的visual studio,之后进入注册表编辑器,依次打开“hkey_current_user/software/whole tomato/visual assist x/vanet8”,找到右边的extsource项,将其值添加.cu;.cuh,之后关闭,再次打开vs2005即可。
至此,就已经可以打开sdk目录下的例子代码(如:c:/program files/nvidia gpu computing sdk/c/src/vectoradd/vectoradd.sln)进行编译、调试了。
注明:
(1) 我安装的是cuda4.2版本
(2) 运行c:\programdata\nvidia corporation\nvidia gpu computing sdk 4.2\opencl中的例子没有问题,可以直接运行。运行cuda例子出现cuda.rules没有找到。需要将文件nvcudadriverapi.rules从c:\program files\nvidia gpu computing toolkit\cuda\v4.2\extras\visual_studio_integration\rules拷贝到c:\program files (x86)\microsoft visual studio 8\vc\vcprojectdefaults目录下。运行cuda例子没有问题。
编译cuj2k出现错误。
第0步是打开工程提示找不到cuda.rules文件,需要将gpu_vc2005.vcproj文件用txt方式打开,将下面这段:
relativepath=..\..\..\..\..\cuda\common\cuda.rules
/>
改为:
filename=nvcudaruntimeapi.rules
/>
第一步是缺少cutil32d.lib库,需要设置lib库的路径,
工具—〉选项—〉项目和解决方案—〉vc++目录—〉库文件目录
c:\program files\nvidia gpu computing toolkit\cuda\v4.2\lib\win32
c:\programdata\nvidia corporation\nvidia gpu computing sdk 4.2\c\common\lib\win32
同时将配置属性—〉连接器—〉常规—〉附加库目录清空
第二步出现库文件冲突问题
1>link : warning lnk4098: 默认库“libcmt”与其他库的使用冲突;请使用/nodefaultlib:library
1>link : warning lnk4098: 默认库“libcmtd”与其他库的使用冲突;请使用/nodefaultlib:library
于是打开项目属性,在“配置属性-->c/c++-->代码生成-->运行时库”中将“多线程(/mt)”修改为“多线程调试dll(/mdd)”出现以下错误:
1> link : warning lnk4098: 默认库“msvcrtd”与其他库的使用冲突;请使用/nodefaultlib:library
静态库中使用配置属性-mfc,并将libcmt.lib设置为忽略特定库。
第三步出现找不到cutil32d.dll的错误,只需要将c:\programdata\nvidia corporation\nvidia gpu computing sdk 4.2\c\common\lib\win32文件夹下的cutil32d.dll拷贝到目录下cuj2k-src-1.1\src_encoder\debug
