目前比较好用的深度学习框架如tensorflow、pytorch乃至Opencv中的神经网络部分都需要cuda的支持,cuda是显卡厂商NVIDIA推出的运算平台,也就是利用GPU进行并行运算的底层接口,不利用GPU也可以跑深度学习(用CPU跑),但训练速度慢,所以目前深度学习框架大部分都会利用GPU甚至分布式多GPU来训练深度学习模型。综上,配置cuda是搞深度学习的基础,但cuda的安装配置并不简单,其坑甚多。
1.首先下载cuda。这个需要你去https://developer.nvidia.com/cuda-downloads这个网址下载cuda,以N卡ubuntu16.04的64位机为例,过程如下图,当然你也可以用wget命令,一定要下载runfile文件,其他的安装时候各种问题,不推荐。下载后一定要保存到一个你能找到的最短的路径下,如/home否则后面只能用命令行时,你找文件输入路径会崩溃的。

cuda下载界面
2.禁用 nouveau驱动。这个驱动时linux内核自带驱动,优先级较高,我们要安装N卡驱动属于第三方软件包,不禁nouveau安装后会出现进不去系统界面等问题,所以,必须保证禁掉它。终端中运行:$ lsmod | grep nouveau如果有输出信息说明没禁掉,在/etc/modprobe.d中创建文件blacklist-nouveau.conf 输入命令:$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf用gedit打开这个创建的黑名单文件,在里面写入
blacklist nouveau
options nouveau modeset=0
这两条命令用来禁用nouveau。
执行$ sudo update-initramfs –u命令
在用$ lsmod | grep nouveau看看是否有输出,如果有的话,重启电脑,再禁一遍直到没有输出为止。
3.禁用成功后重启电脑,不要进入图形界面,直接按Ctrl+Alt+F1进入文本模式(命令行界面),登录账户。这里登录时注意,登录密码在linux中是不显示位数的,所以不要以为密码没输进去。登陆后$ sudo service lightdm stop关掉图形界面。找到runfile文件保存路径(cd Home/后用ls命令看一眼确定下),执行$ sudo sh cuda_7.5.18_linux.run,各种选项除安装OpenGL选no外,都输入accept或yes就行,若需安装OpenGL可以另行安装,不要在这安,会导致循环登录问题。
4.等待安装结束,$sudo service lightdm start 重新启动图形化界面。Alt + ctrl +F7回到图形界面登录,如果不循环登录基本就成功了。
5.使用ls /dev/nvidia*命令检测一下。若有三个输出则成功,
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
否则需添加一个启动脚本$ sudo gedit /etc/rc.local打开rc文件,找到其中的#!/bin/sh -e,把-e去掉后复制下段代码到exit0之上:
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi
重启之后再用ls /dev/nvidia*命令检测时应该有三个输出了。
6.安装好之后需要设置环境变量,其具体方法如下:
sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH
根据自己的cuda版本修改上述路径。配置好环境变量后一定要重启电脑试试。
7.使用cat /proc/driver/nvidia/version查看cuda版本,有输出说明成功。
8.在安装cuda成功后,需要安装CUDA Toolkit,使用命令sudo apt-get install nvidia-cuda-toolkit即可。使用nvcc -V 命令会输出CUDA的版本信息说明安装成功。
9.进入cuda例程目录$ cd /home/xxx/NVIDIA_CUDA-9.0_Samples,使用make命令编译。等待很久很久之后,提示Finished building CUDA samples,这时进入NVIDIA_CUDA-9.0_Samples/bin中,运行其中的设备检测程序$ ./deviceQuery,若Result = PASS则说明检测成功,安装完毕。