在学习深度学习的过程中,往往调用GPU来提高性能速度,那么NVIDIA驱动、cuda和cuDNN的安装必不可少。
本人刚开始在安装过程中由于没有考虑到版本匹配问题,结果安装失败,这里首先介绍一下部分NVIDIA驱动、cuda和cuDNN的版本匹配关系:
接下来介绍NVIDIA驱动、cuda和cuDNN的安装步骤。
这里是run方式安装nvidia显卡驱动,这种安装方式首先要根据自己机器的配置去NVIDIA驱动官方下载地址下载NVIDIA驱动,这里提供的驱动都是最新版本的驱动,所以这种方式安装NVIDIA驱动很容易就满足上述版本匹配关系。run方式安装nvidia显卡驱动也避免sudo apt-get install nvidia-*安装方式造成登录界面循环的问题。
如下图先选择自己机器的配置:
然后下载
ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
编辑文件blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
重启系统(一定要重启)
验证nouveau是否已禁用
lsmod | grep nouveau
没有信息显示,说明nouveau已被禁用,如下图所示,接下来可以安装nvidia的显卡驱动。
我下载的版本:NVIDIA-Linux-x86_64-440.31.run(注意不同的版本最后安装执行的具体选项不同)
下载后的run文件拷贝至home目录下。
在ubuntu下按ctrl+alt+f1进入命令行界面,
然后在命令行界面下输入:
sudo service lightdm stop //这个是关闭图形界面,不执行会出错。
然后卸载掉原有驱动:
sudo apt-get remove nvidia-* (若安装过其他版本或其他方式安装过驱动执行此项)
给驱动run文件赋予执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-440.31.run
安装:
sudo ./NVIDIA-Linux-x86_64-440.31.run -no-x-check -no-nouveau-check -no-opengl-files //只有禁用opengl这样安装才不会出现循环登陆的问题
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
安装过程中的选项选择:
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。
问题没记住,选项是:install without signing
问题大概是:Nvidia’s 32-bit compatibility libraries? 选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续
这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。
挂载Nvidia驱动:
modprobe nvidia
检查驱动是否安装成功:
nvidia-smi
首先根据上述版本匹配关系去英伟达官网下载cuda安装包
我下载的是cuda9.0版本
安装cuda
sudo sh cuda_9.0.176_384.81_linux.run
压住回车键,直到服务条款显示到100%。接着按下面的步骤选择:
accept
n(不要安装driver)
y
y
y
安装完成后,设置环境变量。
设置环境变量。
打开主目录下的 .bashrc文件添加如下路径,例如我的.bashrc文件在/home/xxx下,如果没有找到,则按Ctrl+H键显示隐藏文件。
在该文件中加入
卸载cuda:
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0
终端输入命令
source ~/.bashrc
nvcc --version
首先根据上述版本匹配关系去官方网址下载cudnn安装包
安装cudnn
解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
在终端输入
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2