此次安装参考了几位前辈的安装方法,然后将他们合在一起讲述自己的安装过程:
为了确保cuda能安装成功,首先需要确认安装前的环境是否符合要求,具体细节请查阅NVIDIA CUDA Installation Guide for Linux
一.更换ubuntut16.04的源,自己使用的是中科大的源
终端输入
cd /etc/apt/
sudo cp sources.list sources.list.backup #做备份
sudo gedit sources.list
然后把如下内容替换到该文件中:
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
然后更新源和更新已安装的包:
sudo apt-get update
sudo apt-get upgrade
二.gcc 版本
需要注意的一点是ubuntu16.04的gcc版本是5.4,而cuda8.0在该系统中支持的gcc版本不超过5.3,所以第一步需要对GCC版本进行降级。
(1)下载gcc源码
wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz
(2)解压
tar -zxvf gcc-5.3.0.tar.gz
(3)下载编译所需依赖项:
cd gcc-5.3.0 //进入解包后的gcc文件夹
./contrib/download_prerequisites //下载依赖项
cd .. //返回上层目录
(4)建立编译输出目录:
mkdir gcc-build-5.3.0
(5)进入输出目录,执行以下命令,并生成makefile文件:
cd gcc-build-5.3.0
../gcc-5.3.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
(6)编译:
sudo make -j4
接下来就是等待了,整个过程大约40分钟左右。PS:最好不要在编译过程中再去做别的什么事,整个过程CPU都是满载的,要是莫名终止了,后面麻烦事也不少。
(7)编译结束以后,我们就可以执行安装了:
sudo make install
(8)检查gcc和g++版本
gcc --version
g++ --version
三. nvidia 驱动安装
如果从nvidia官网下载驱动安装时,有可能重启后进入不了系统,输入我的登录密码会发现屏幕一闪,然后又重新跳回到登录界面,就是进入了login loop的状态,造成这种问题的与原因是更新后的NVIDIA驱动与我现在的GPU不匹配。
让系统自动安装nvidia驱动有两种办法:
(1)第一种是进入ubuntu系统设置-软件与更新-附加驱动中选择下图所示选项进行驱动安装
这种方法的缺点是:所安装的驱动(如图中所示nvidia-361)并不是最新版本的,以至于在最后进行样例测试的时候报错:
cuda driver version is infufficient for cuda runtime version
(2)第二种方法是添加ppa源,同时在nvidia驱动官网上查看自己GPU驱动的最新版本号(不需要下载):
看到最新版是375,然后:
1、在你的用户登录界面按ctrl+alt+F1进入tty模式
2、输入你的账户名和密码
3、依次运行如下语句(需要联网):
sudo apt-get purge nvidia-* //删除现有驱动
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375 //nvidia-后面的数字是版本号
sudo reboot //重启
重启后,终端输入:
nvidia-smi //或者
nvidia-settings
如果没出错,则驱动安装成功
四. cuda 8.0 安装
cuda 8.0 Downloads下载cuda 8.0 的 runfile安装包。
cd切换到下载的文件目录下进行安装:
sudo sh cuda_8.0.44_linux.run --override
启动安装程序,一直按空格到最后,输入accept接受条款
输入n不安装nvidia图像驱动,之前已经安装过了
输入y安装cuda 8.0工具
回车确认cuda默认安装路径:/usr/local/cuda-8.0
输入y用sudo权限运行安装,输入密码
输入y或者n安装或者不安装指向/usr/local/cuda的符号链接
输入y安装CUDA 8.0 Samples,以便后面测试
回车确认CUDA 8.0 Samples默认安装路径,该安装路径测试完可以删除
五. cudnn 安装
cudnn 下载相应版本.
cd到下载的文件目录下,解压:
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
解压在下载目录下产生一个cuda目录
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
cd ../lib64 #打开lib64目录
sudo cp lib* /usr/local/cuda/lib64/ #复制库文件
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* #给所有用户增加这些文件的读权限
六. 建立软连接
终端输入
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
设置环境变量,终端输入
sudo gedit /etc/profile
在末尾加入
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后,创建链接文件
sudo vim /etc/ld.so.conf.d/cuda.conf
按a进入插入模式,增加下面一行
/usr/local/cuda/lib64
按esc退出插入模式,按:wq保存退出
最后在终端输入
sudo ldconfig #使链接生效
七.cuda Samples测试
切换到CUDA 8.0 Samples默认安装路径(即在NVIDIA_CUDA-8.0_Samples目录下),终端输入
sudo make all -j4 #(4核)
完成后继续向终端输入
cd bin/x86_64/linux/release
./deviceQuery