cuda的nvcc编译器正确的编译一个cuda程序需要配合一个通用编译器,如果是windows平台,这个通用编译器一般是cl.exe。所以需要安装visual studio来配合cuda。并且在cuda的安装过程中,安装程序也会提示系统中发现的vs版本。
这里安装的cuda8.0,配合的vs版本是vs2013(因为cuda8.0不支持vs2015及以上的版本)。同时,如果windows系统中安装了多个vs的版本,会造成nvcc在链接库的时候产生混乱,所以我的平台上删除了其它的所有vs。
cuda下载地址:
https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda_8.0.44_win10-exe
vs2013下载地址:
http://go.microsoft.com/?linkid=9863608
先安装vs2013,再安装cuda,安装完毕后,可以直接在cmd中执行nvcc来编译一个cuda程序了。
额外再安装一个cudnn来进行机器学习的加速(这里安装的是cudnn5.1):
解压cudnn安装包后,将include中的cudnn.h和lib/x64中的cudnn.lib放入合适的路径中。这里所说的合适的路径指的是一些应用cudnn的程序如theano指定的路径。
索性将include/中的cudnn.h放到cuda的include目录下,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64;
将lib/x64/中的cudnn.lib放到cuda的lib/x64路径中,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64。
另外,还要将bin/中的cudnn*.dll放到 PATH里,这也是为了让需要cudnn的程序,如theano,访问到。既然安装过程中,cuda的bin/已经被添加到了 P A T H 里 , 这 也 是 为 了 让 需 要 c u d n n 的 程 序 , 如 t h e a n o , 访 问 到 。 既 然 安 装 过 程 中 , c u d a 的 b i n / 已 经 被 添 加 到 了 PATH中,我们就将cudnn*.dll放到这里,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
至此,安装完毕。
下载cudnn的安装文件cudnn-7.0-win-x64-v3.0-prod.zip
将文件解压,例如解压到d:\cuda\
解压后有三个子目录:bin,include,lib
将bin目录(例如 d:\cuda\bin)添加到环境变量 PATH 中,不会添加环境变量请自行百度。
用 vs 新建 cuda 项目。在vs编辑器正上方,Solution Configuration 的内容如果是Debug ,改为 Release ,旁边Platforms Solution Platforms 中的内容如果是win32,要改选为x64。
接下来修改项目属性:
项目属性/VC++ Directories/Include Directories 中添加入include的路径(例如 d:\cuda\include);
在项目属性/VC++ Directories/Libary Directories 中添加入lib\x64路径(例如 d:\cuda\lib\x64);
在项目属性/Linker/Input/Additional Dependencies 中添加入cudnn.lib;
项目属性/CUDA C|C++ / Device /Code Generation 中,将sm_20改为 sm_30或更高;
项目属性修改完毕。
加入如下代码:
#include <iostream>
#include <cudnn.h>
using namespace std;
void main(){
cudnnHandle_t handle;
cudnnStatus_t t = cudnnCreate(&handle);
cout<< cudnnGetErrorString(t);
getchar();
}
如果结果显示:
CUDNN_STATES_SUCCESS
表明安装成功了