今天自己在电脑上安装了cuda ,对于小白,一天真的时很漫长,简单记录一下,日后方便自己再次安装。自己是根据官网上的安装文件进行操作的。http://developer.nvidia.com/cuda-downloads。
给出官网上的型号适用图:
安装步骤如下:
1、前期准备
(1)确定有cuda使用的GPU ,可使用下面命令查看:
$ lspci | grep -i nvidia
如果没有看到任何设置,则使用命令 update-pciids 来升级PCI 硬件数据库,然后重新运行上面 lspci 命令。
本人电脑上出现了GPU 版本,如下所示:
(2)查看系统版本
$ uname -m && cat /etc/*release
你可以看到类似如下信息:
x86_64
Red Hat Enterprise Linux Workstation release 6.0 (Santiago)
从x86_64可以看出使用的是64位。
本人电脑显示结果如下图所示:
(3)验证gcc
使用命令验证gcc版本:
$ gcc --version
从文章开头可以知道ubuntu16.04系统需要5.3.1以上的gcc。如果电脑上没有gcc则需要进行安装,之后需要对cuda代码使用gcc进行调试。安装代码如下:
sudo apt-get install build-essential
(4)验证系统是否有正确的内核头和安装包
使用如下命令可以查看内核的版本号:
uname -r
对于ubuntu系统,可以使用如下命令进行内核头与开发包的安装:
$ sudo apt-get install linux-headers-$(uname -r)
(5)选择安装方法
一种时独立的,一种是分布式的。这里我没有进行太多研究,因为我还都不懂,所以就没有过多考虑。
以上为前期准备工作。
2、安装
我使用的时deb文件。所以接下来介绍的是deb文件的安装方法,大家也可以下载sh文件。
先从网站上下载了cuda的deb文件。
(1)运行deb文件
$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
(2)升级
$ sudo apt-get update
(3)安装CUDA
$ sudo apt-get install cuda
3、安装后的操作
(1)修改环境变量
使用命令打开bashrc文件:
gedit ~/.bashrc
在bashrc文件最后面添加上下面的cuda路径:
$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
其次, 在bashrc文件最后面还需要加上依赖库地址。
64位的用户添加如下的依赖库地址:
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
32位的用户添加如下的依赖库地址:
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
注:地址最好写成一行,否则在打开终端时会提示路径错误。
结果如下图所示:
若写成下图所示格式,打开终端时会提示路径错误:
(2)验证
a、为了修改、编译和运行示例,必须安装具有写入权限的示例。提供方便安装脚本:
$ cuda-install-samples-8.0.sh <dir>
其中dir为目标地址。
完成这些后要对电脑重新启动,才能进行下面操作。
b、验证驱动程序版本
$ cat /proc/driver/nvidia/version
再依次执行下面操作:
验证cuda版本:
nvcc -V
结果如下图:
nvidia-smi
c、运行例子
进入例程所在目录:
cd /usr/local/cuda/samples/7_CUDALibraries/batchCUBLAS/
查看当前目录:
ls
含有五个文件:
batchCUBLAS.cpp batchCUBLAS.h Makefile NSIGHTEclipse.xml readme.txt
直接使用make进行编译
make
会显示如下信息:
/usr/local/cuda-8.0/bin/nvcc -ccbin g++ -I../../common/inc -m64 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_52,code=compute_52 -o batchCUBLAS.o -c batchXUBLAS.cpp
/usr/local/cuda-8.0/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_52,code=compute_52 -o batchCUBLAS.o -lcublas
再次查看文件夹下的文件
ls
文件夹下包括:
batchCUBLAS batchCUBLAS.o batchCUBLAS.cpp batchCUBLAS.h Makefile NSIGHTEclipse.xml readme.txt
比之前多了2个文件。编译的结果放在了 /usr/local/cuda/samples/bin/x86_64/linux/release 中。
此时可以在/usr/local/cuda/samples/bin/x86_64/linux/release 目录下执行:
./deviceQuery
会出现如下结果:
/usr/local/cuda/samples/7_CUDALibraries/batchCUBLAS/ 下的batchCUBLAS实现矩阵乘运算,可以在该目录下运行如下代码:
$ ./batchCUBLAS -m4096 -n4096 -k4096
安装CUDNN
安装cudnn比安装cudn相对来说简单的多得多,所以就不单独拿出一篇文章来介绍了。很简单。
CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等。
CuDNN可以在官网免费获得,注册帐号后即可下载。官网没有找到安装说明,下载得到的压缩包内也没有Readme. 不过google一下就会找到许多说明。基本原理是把lib文件加入到系统能找到的lib文件夹里, 把头文件加到系统能找到的include文件夹里就可以。
参考:http://www.cnblogs.com/platero/p/4118139.html
1、下载
在网站 https://developer.nvidia.com/cudnn 下载·「 cuDNN v** library for Linux 」
2、执行如下命令
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
cd cudnn-8.0-linux-x64-v5.1 进入解压缩的文件内,名称会有所不同,所以解压的时候要注意。有时可能也会是cuda
复制相关信息
sudo cp lib* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/
cudnn.h有时可能在include 文件夹内,需要进入include 文件夹内对 cudnn.h 进行复制。
3、 修改 caffe 的·配置文件
进入caffe目录下,打开Makefile.config文件,将Use_cudnn解注释。
cd caffe
gedit Makefile.config
修改配置文件:
4、验证
对caffe进行重新编译,如果成功加载cudnn的lib库,则编译成功,否则添加失败。
验证后出现错误:
/usr/bin/ld: 找不到 -lcudnn
我解决的方法是将压缩出来的文件单个复制到指定的文件夹下:
sudo cp libcudnn.so /usr/local/cuda/lib64/
sudo cp libcudnn.so.5 /usr/local/cuda/lib64/
sudo cp libcudnn.so.5.1.10 /usr/local/cuda/lib64/
sudo cp libcudnn_static.a /usr/local/cuda/lib64/
之后再编译caffe,