@(Program Primer)
需要对比试验,但是作者提供的程序需要是使用CUDA
,在两个台式机上测试,都不能通过,笔记本的显卡是配置最高的,在自己的笔记本上配置环境跑程序,刚才尝试了一下,还好,能用了。在Windows平台上配置环境挺简单的,还是记录一下,方便以后查看。
检查显卡
虽然是N卡,但是还是检查一下显卡是否支持。
我的机器的基本配置:
- 处理器 intel i5 四线程
- 内存 4GB * 2
- 显卡 NVIDIA Geforce 755m 2GB
- 系统 Windows 8.1 64 bit 中文版
也可以在设备管理器中查看自己机器的显卡。
在NVIDIA的官方网站查看显卡是否在支持的列表中。
但是,这个表不是特别全。也可以在其硬件设备网站中查看是否支持。
或者使用GPU-Z
查看是否支持,不过这个软件也是有问题。
最好的是查看硬件的支持信息。
不过也有在百度上直接问的,比如这位同学。
注意:
下载的安装包实际上是安装三个东西
- Toolkit 各种工具的集合,提供了矩阵计算的各种工具
- GDK 提供一些库函数,我看的意思貌似 是ML(Machine Learning)的库,其实不是啦,是NVIDIA Management Library的意思。
- Samples 提供了一些例子
开始安装
检查发现显卡支持CUDA,那果断安装。
在NVIDIA的官网,上找到
CUDA ZONE
,可以在这里了解更多关于CUDA
的知识;在CUDA下载页面选择合适的系统平台,下载对应的开发包,我下载的是
Win8.1
版本的,但是我发现怎么只有Win8.1
下有链接,其他的系统平台下没有链接,难道都是一样的?安装,整个安装过程比较简单,就类似于普通的软件安装,但是要提醒一下,一定要安装
Visual Studio 2010
或者更高版本,比如Visual Studio 2012
和Visual Studio 2013
,CUDA7.0
都是支持的。安装路径也是可以选择的。安装过程看电脑的性能了,我大约安装了10多分钟。
验证安装,打开命令提示框(就是cmd),输入命令
nvcc - V
,查看CUDA
的版本。若是安装正确的话,会出现下面的结果;若不正确,我也不知道啦。
1 | C:\Users\username>nvcc -V |
其他验证方式
网上的教程还给了其他的验证方式,比如这篇文章提到了用deviceQuery.exe
验证,我找了半天也没找到这个可执行程序,后来发现原来这是一个例子,按照其他文章说的,在安装的时候就把例子也给编译了,我仔细的检测,发现我的没有编译,只能自己编译了。
在例子的安装目录下,找到解决方案的名字。比如我的例子的安装路径是
D:\Application\ProgramData\NVIDIA Corporation\CUDA\Samples\v7.0\
,若版本号跟我的一样的话,应该是有三个解决方案,对应不同的版本,比如我的有Samples_vs2010.sln
、Samples_vs2012.sln
和Samples_vs2013.sln
,我的机器只是安装了Visual Studio 2010
因此,只能打开第一个解决方案。开始漫长的编译过程,选择
Visual Studio 2010
的生成->生成解决方案或者直接按F7
键,开始Build
。
Visual Studio这个环境好用,但是也会有各种奇葩的错误,在构建例子的过程中,有10个例子没有成功,先不管了,绝大多数都成功了。
下面是我的构建日志的最后部分:1
2
3
4
5
6
7
8...
144> 正在删除文件“x64/Debug/alignedTypes.unsuccessfulbuild”。
144> 正在对“x64/Debug/alignedTypes.lastbuildstate”执行 Touch 任务。
144>
144>生成成功。
144>
144>已用时间 00:01:07.49
========== 生成: 成功 134 个,失败 10 个,最新 0 个,跳过 0 个 ==========
结束Build
后,就会在对应的目录中找到deviceQuery.exe
了,在命令行中运行这个程序,会得到如下的结果:
1 | deviceQuery.exe Starting... |
写一个小程序
在Visual Studio 2010 中新建一个空项目
添加新建项
在新建项对话框窗口左侧,选择NVIDIA CUDA7.0—Code
在右侧的列表框中选择CUDA C/C++ File,名字任意,不过最好选择一个有意义的名字
右键工程名字,选择生成自定义,在CUDA7.0项前的复选框,选中
右键新建的CUDA文件,后缀名是
.cu
,选择属性,将常规项中的,项类型修改为CUDA C/C++
又将工程名字,选择属性,选择链接器 : 打开常规,编辑附加目录,添加内容
$(CUDA_PATH_V7_0)\lib\$(Platform)
; 打开输入,编辑附加依赖项,添加内容cudart.lib
在CUDA文件中添加以下测试代码:
1 | #include< stdio.h> |
若设备没有问题的话,正确的输出结果是:
1 | Hello World, CUDA has been initialized. |