NVIDIA于2006年推出CUDA(Compute Unified Devices Architecture计算统一设备架构),可以利用其推出的GPU进行通用计算,将并行计算从大型集群扩展到了普通显卡,使得用户只需要一台带有Geforce显卡的笔记本就能跑较大规模的并行处理程序。
1、安装之前必须确认自己电脑的GPU支持CUDA。在设备管理器中找到显示适配器(Display adapters),找到自己电脑的显卡型号,如果包含在http://www.nvidia.com/object/cuda_gpus.html的列表中,说明支持CUDA。
首先下载好CUDA5.5的安装包,地址如下https://developer.nvidia.com/cuda-downloads,根据自己的电脑选择相应的安装包。
现在的CUDA安装非常简单,它的一个安装包里面包含了toolkit、SDK、doc、Nsight、samples等等,不需要你挨个安装,这样也就避免了各个组件之间版本不同的问题。
2、直接双击exe文件,全部选择默认选项,耐心的等待安装的完成即可。
3、CUDA安装完成后,可以开始测试运行。
3.1 启动命令行,输入nvcc -V查看版本信息。
3.2 运行示例程序,进入命令行,使用”cd“命令依次进入如下目录
运行bandwidthTest.exe,如下图所示
接着运行deviceQuery.exe,如下图所示
可以看到最下面有个”Result = PASS“,这说明,都通过了;如果Rsult=Fail 那不好意思,再装一次吧。
4、VS2010配置
4.1 打开VS2010,新建工程,选win32,记得勾选”空项目“。
4.2 右键源文件-》添加新建项-》选择CUDA C/C++File,名字任意了。
4.3 右键工程-》生成自定义-》勾选CUDA 5.5
4.4 右键main.cu-》属性-》项类型 选择"CUDA C/C++"
4.5 右键工程-》属性-》VC++ Directories添加头文件目录 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include
4.6 右键工程-》属性-》VC++ Directories添加库目录 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\lib\x64
4.7 链接器-》输入-》附加依赖项 添加cudart.lib
4.8 在main.cu中加入代码,示例代码如下:
#include< stdio.h> #include "cuda_runtime.h" #include "device_launch_parameters.h" bool InitCUDA() { int count; cudaGetDeviceCount(&count); if(count == 0) { fprintf(stderr, "There is no device.\n"); return false; } int i; for(i = 0; i < count; i++) { cudaDeviceProp prop; if(cudaGetDeviceProperties(&prop, i) == cudaSuccess) { if(prop.major >= 1) { break; } } } if(i == count) { fprintf(stderr, "There is no device supporting CUDA 1.x.\n"); return false; } cudaSetDevice(i); return true; } int main() { if(!InitCUDA()) { return 0; } printf("HelloWorld, CUDA has been initialized.\n"); return 0; }
用 Ctrl+F5 运行,通过nvcc编译成功,输出结果:
到这里,CUDA5.5在VS2010的环境下就搭好了,下面介绍一些实用的辅助技巧,分割线在此。
-------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------
1、.cu文件中C/C++关键字高亮
这个设置是让Visual Studio 2010在编辑.cu文件的时候,能够对.cu文件里的c/c++语法高亮。方法如下:在Visual Studio 2010 的菜单依次选“ 工具|选项|文本编辑器|文件扩展名“,在该窗口中将“编辑器”下拉框选择“Microsoft Visual C++”,在“扩展名”文本框中输入cu 点击“添加”按钮,重复工作把cuh 添加为Visual C++类型,添加完成后点击“确定”按钮,如下图所示:
**********************这样操作完之后,VS就能识别到.cu和.cuh文件里的内容,并把里面C/C++相关代码进行高亮*************************
2、CUDA关键字高亮
为了让CUDA的关键字,如__device__、dim3之类的文字高亮,需要如下步骤:
把C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\doc\syntax_highlighting\visual_studio_8\usertype.dat 复制到C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\目录下
VS2010需要重启,重启后打开.cu文件,CUDA的关键字应该变成蓝色了。
**********************这样操作完之后,VS就能将.cu和.cuh中的CUDA关键字进行高亮,如dim3等*************************
3、CUDA 函数高亮,及CUDA 函数输入代码提示
实现这个功能需要使用Visual Assist X,如果没有安装支持Visual Studio 2010的Visual Assist X,这部分功能无法实现。这里只是为使编写代码更加方便,对CUDA 程序的开发无实质性障碍。
如果已经安装Visual Assist X,可以通过以下两步实现需要的功能。
3.1 使Visual Assist X 支持CUDA 函数高亮和代码完成
在Visual Studio 2010 的菜单里依次选择:“ VAssistX|Visual assist X Options|Projects|C/C++Directories”,在该界面的“Platform”下拉框中选择Custom,在“Show Directories for”下拉框中选择Other include files, 然后在下面的输入框里,新建、添加如下路径,如图:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc
3.2 使Visual Assist X 实现.cu 文件高亮和代码完成功能,需要编辑注册表。在修改注册表时,为避免带来不必要的错误请先关闭Visual Studio 2010。使用Win+R组合键打开“运行”窗口,键入入regedit 命令打开注册表,找到如下位置:HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet10。在右边找到ExtSource 项目,鼠标右键选修改,在原有文字后添加如下文字:.cu;.cuh; 确定后关闭注册表。重新打开Visual Studio 2010,Visual Assist X 便开始支持.cu 及.cuh 文件的语法高亮及代码完成。此时.cu 文件的CUDA 函数是高亮的,使用函数名符号就会自动提示函数全称,参数类型等信息。
修改注册表时,请把vs关闭,否则修改不成功。
如果是VS2012,则把VANet10选成VANet11。