由于深度学习是一个计算密集型的过程,因此在利用tensorflow或者是pytorch等机器学习的框架的时候,我们通常会采用GPU对计算进行加速,NVIDIA为此提供了cuda和cudnn来帮助我们利用显卡对涉及到的运算进行加速。但是,在Ubuntu 中安装显卡常常出现的一个问题是安装好驱动之后出现循环登录的情况,为了解决上述问题,我把自己的经验总结如下:
问题的出现
通常,我们是直接在Ubuntu的Software&Updates的Additional Drivers中安装NVIDIA的闭源驱动(图1):但是安装好之后如果我们重启机器,会发现系统会一直停留登录界面,无论我们输入多少次密码。这就是典型的循环登录问题
可能的原因
这里给出目前网络上流传的三个可能的原因:
- 驱动的问题(最有可能)
- .Xauthority文件的问题
- /tmp权限的问题
可能的解决方法(只针对驱动问题)
根据网上的教程,我总结了一个自己验证了的方法:
卸载原有的驱动
在卸载原来安装的驱动 之前,需要进入文本模式,同时按下Ctrl+Alt+F1(或者是Fn+Ctrl+Alt+F1),这一步很重要!!!
然后登入系统,卸载原有的驱动:
# 关闭图形界面
sudo service lightdm stop
sudo apt-get remove nvidia-*
sudo apt-get autoremove
sudo nvidia-uninstall
重新安装驱动
卸载完成重启后,依旧进入文本模式
sudo service lightdm stop
sudo ./NVIDIA-Linux-x86_64-XXXX.run -no-x-check -no-nouveau-check -no-opengl-files
# 重新启动图形界面
sudo service lightdm restart
- -no-x-check :不检查x服务(可选)
- -no-nouveau-check :不检查nouveau(可选)
- -no-opengl-files:只安装驱动文件,不安装opengl(必选)
安装cuda和cudnn
安装cuda:
sudo sh cuda_XXXX.run
然后将下载好的cudnn解压:
tar -zvxf cudnn_XXX.tgz
# 拷贝到cuda文件夹下
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
检查是否安装成功:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果得到下图输出则表明安装成功了: