【IT168 文档】如果想建立一个完全使用CUDA的程序,那么下载http://sourceforge.net/projects/cudavswizard/这个就可以了,但是很多时候对于大型工程,主要还是以c或者cpp代码为主,只是在需要性能优化的地方使用CUDA代码,这个时候需要一点点小知识来实现CUDA和VC8的混合编译.步骤如下:
1) 在你的VC8工程下面添加规则文件. 在工程文件上右键选择 -> 自定义生成规则 -> 查找现有的 -> $(NVIDIA CUDA SDK)\common\Cuda.rules -> 把CUDA Build Rule前面的勾给勾上
2) 鼠标选中 CUDA Build Rule -> 修改规则文件 -> 修改生成规则 -> 修改"命令行"里面的内容, 最后面 把$(InputFileName)改成[inputs].
3) 添加你要使用的 *.cu 代码到你的工程, 在.cu文件上点右键 -> 属性, 一般你添加了规则后,会自动识别.cu文件,然后工具栏里面显示的是 CUDA Build Rule, 如果不是, 手工选择之.
最后就可以重新编译你的工程了,不过你马上会遇到很多问题:首先是比如你的cuda函数名字叫做 foo,但是在C或者cpp代码中提示无法连接,我们需要如下操作:
4) 用写字板或者记事本打开cuda.rules文件,使用替换功能将所有 *.cu.obj 改成 *.obj
5) 在你自己的工程中将.cu文件中的foo函数定义成 extern "C" void foo();
6) 在.c或者.cpp中要调用cuda函数的地方声明foo: extern void foo();
7) 最后添加cuda库支持cudart.lib cutil32.lib