毕业设计要做基于GPU的并行运算之类的东东,所以最近在学CUDA啦,昨天开始安那些乱七八糟的东东,敲示例程序,折腾到现在,终于可以运行了。VS对CUDA的支持还是不够啊,编个程序要改环境变量还要加这个加那个,而且没有像Java一样被验证的完全好用的方法,真累人。现在小幻来总结下。
先说CUDA的安装与配置
1.在http://developer.nvidia.com/object/cuda_2_3_downloads.html选择相应的操作系统,下载最新的CUDA driver、CUDA toolkit 、CUDA SDK code samples。按照这个顺序装好这些东东,期间它会自己添加一些环境变量,默认路径可以改变。
这里要说的是,如果之前已经安装了低版本的CUDA环境,要先卸掉,才能安最新的。还有,小幻试过,专用的CUDA driver小幻装的时候,程序提示找不到相关驱动,这里只要我们的显卡支持CUDA,用标准的显卡驱动就可以了。小幻的显卡是8400M GS,计算能力1.1,更新驱动到最新版本,就OK了。
安装的时候,在安装流程的最后会提示是否要安一个Wizard,这是建立工程的向导,小幻安环境的时候有提示,但是当时没有安,后来才自己下了一个安好,走了很多弯路。所以还是建议大家在一开始就安好,后面会用到的。刚开始没有安的童靴们,这里给一个地址大家。
http://sourceforge.net/projects/cudavswizard/
有32位的,有64位的,大家请根据自己的情况选择。另外,本文中提到所有状况都是在Win7环境下,VS2008开发环境中的状况,适合Windows XP以及其他后续Windows版本,但是不一定适用其他系统。CUDA现下支持的系统还有Linux以及Mac OS X,这里不多说了。
2.接下来,我们可以编译SDK里的例子,~projectsdeviceQuery检验CUDA环境有没有安装成功。顺便提下,CUDA目前支持VS6.0、VS2003,VS2005、VS2008等IDE开发环境。
3.然后我们就可以建立自己的CUDA程序啦~CUDA SDK提供了很多sample,其中最基本的是template,我们可以以它为模板来建立自己的程序。把文件拷到自己的开发目录下,然后再修改编译执行。当然,我们也可以改其他我们认为合适的sample。
另一种方法比较容易被接受,就是用向导建立工程的好处就是,不用自己去改那么多的变量,可以专心在程序上。但是即使如此,也会有小小的问题。小幻遇到有以下几点:
a,新建一个console 应用,运行报错:error PRJ0003:Error spawning 'cmd.exe'
搜了下解决方法:
tools=> Options => Projects and Solutions -> VC++ Directories page
then place below rows:
$(SystemRoot)System32
$(SystemRoot)
$(SystemRoot)System32wbem
好了。
b,LINK : fatal error LNK1181: cannot open input file 'cutil32D.lib',会出现这个问题,师姐说是因为例子中设了很多绝对路径,直接那么拷过来就会出错。
编译通过但调试时说找不到cutil32D.dll文件。小幻的解决方法:这个dll文件在CUDA SDK的Cbinwin32Debug文件夹下,找到它,然后复制到CUDAbin文件夹下就搞定了。
c,刚开始用向导建立工程的时候,小幻默认选了建立带预编译的工程,后来报错说缺少'#include stdafx.h',要手动填进去。用预编译可以缩短时间,这在做MFC程序时效率很高,但是对于我们新手来说好像没什么必要,我们还只是在学习阶段,也不会用到Windows的那些头文件,所以小幻建议大家在最开始建立工程时,选择空工程,系统不会多添代码进去,也就没那么多奇怪的错误啦。
高亮显示:
用惯VS的童靴们也许产生疑问,怎么.cu文件的文本都是一个颜色呢,而不是像以前写C/C++程序的时候,保留字啊之类的东东都会用别的颜色标出来。小幻来教你怎么高亮显示。
CUDA SDKdocsyntax_highlighting文件夹下有visual_studio7和visual_studio8两个目录,分别包含用于VS.NET/7和VS.NET2005/VS8高亮显示的相关文件与说明。对于VS2005跟VS2008,用8那个版本。里面有个readme的txt文件,跟着它做就OK了。
Want pretty syntax highlighting when editing your .cu files in Visual Studio?
Heres how:
---
Visual Studio .Net 2005 / Visual Studio 8:
1. If you don't have a usertype.dat file in your "Microsoft Visual Studio 8Common7IDE" folder, then copy the included usertype.dat file there. If you do, append the contents of the included usertype.dat onto the end of the "Microsoft Visual Studio 8Common7IDEusertype.dat"
//打开的安装目录下除了read.txt之外,还有usertype.dat文件,将这个文件拷贝到Microsoft Visual Studio 8Common7IDE目录下。(如果已经存在,就追加到原来的后面)
2. Start Visual Studio 8. Select the menu "Tools->Options...". Open "Text Editor" in the tree view on the left, and click on "File Extension". Type cu in the "Extension" box, and click "Add". Click "OK" on the dialog box.
//启动vs2005,选择“工具”菜单中的“选项”,选择“文本编辑器”中的“文件扩展名”,在右边的“扩展名”对应的栏里输入“cu”,单击“确定”。
3. Restart Visual Studio and your shaders should now have syntax highlighting.
//重启VS。然后就可以高亮显示啦~~~
看到网上有些人说还要改注册表,根本不用的。
规则添加:
1.在NVIDIA CUDA SDKcommon目录下找到cuda.rules
2.打开VS环境,单击Tools→Options→Projects and Solutions→VC++Project Settings,在C/C++ File Extensions里添加*.cu,在Extensions To Include里添加*.cuh,在Rule File Search Paths里添加~NVIDIA CUDA SDKcommon,即cuda.rules文件所在目录。
3.重启VS。
我们组长也在研究gpu。。。
回复百合俗人:咦,那可以多交流一下嘛
你好,我刚刚开始学习,我想问一下,我安这个方法设置高亮显示了,颜色变了,但是括号啊什么的不能显示,而且编写的时候也不提示,我想请问一下这是什么原因,谢谢~~~
回复woniumanbu1132:你是每一步都按照上面做的吗?写的时候没提示我印象里是正常的,因为VS里面没有CUDA的代码助手。那个wizard只是建工程的时候用,不然自己建会很麻烦,还出好多错误。但是如果是CUDA里的保留字,敲完是会高亮显示的。你试试从头开始按照步骤一步一步设置看看,我想你中间漏了些什么。
回复角落里的幻觉:你好,我又按照这个顺序重新设置了一次,还是那样的,主要是括号不显示,这样编起来很麻烦。。。。不知道是怎么回事。
回复woniumanbu1132:qq上说吧,那样算是实时一点。
好啊,太感谢你了~~~我的QQ是:306023551
你好,我也刚刚开始研究 CUDA ,可以交流一下么? QQ: 97616329
回复alfa52374:呃,这个是一年前毕业设计时候看的,现在不做这块了……后来不做cuda就没接着看了,
你好,我是一个CUDA学习的新手,我再用向导创建工程时,显示fatal error LNK1181: cannot open input file 'cutil32D.lib'。我根据你的方法试了一下,好像还不可以用,麻烦你能再给我一点建议吗,谢谢。
你好,我是一名CUDA学习新手,在用向导创建工程时显示错误 fatal error LNK1181: cannot open input file 'cutil32D.lib'。我根据你介绍的方法改了一下,好像不起作用,希望你能再给点建议,或者分析一下错误的原因,谢谢拉。
回复ttkidschen:检查下你CUDA的环境变量路径对不对,一般把库文件放到bin下就一定会找到才对。或者,用VS的话,手动包含一下这个lib文件也可以的
回复角落里的幻觉:好吧,好可惜.. 那你现在的研究方向是什么呢? 一年前我还在跟着微软混呢.
回复alfa52374:你说跟着微软混是directX?我现在捣鼓iPhone应用开发啊,其实我也觉得挺可惜的,嗯。
你好,我是毕业研究需要用到CUDA这个东东最近刚开始学。现在用VS2010和CUDA4.0。
可是每次新建CUDA的Project时,文件必须放在于CUDAsample相同地方。在D盘里新建的Project总是没法运行,请多指点。
回复notoking:我想你的链接库路径可能设的不大对,templete好多模板的路径都是绝对路径,要注意自己修改成相对路径。
回复角落里的幻觉:多谢多谢,我尝试着改改。