ubuntu系统显卡驱动偶尔会出现奇怪的问题,造成图形用户界面循环登陆,本文记录相关问题的解决方案。
卸载旧驱动
- 在登陆界面 ctrl alt F2 进入非图形界面控制台,登陆后输入命令:
sudo apt-get remove nvidia-*
sudo apt-get autoremove
sudo apt-get purge nvidia*
安装驱动
代码语言:javascript复制加入PPA,然后更新库
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
代码语言:javascript复制查看适合本机的nvidia驱动
ubuntu-drivers devices
代码语言:javascript复制选择合适自己的版本
sudo apt-get install nvidia-driver-440 nvidia-settings nvidia-prime
使用nvidia-smi 查看是否已经读取到安装的驱动,如果提示没有找到命令重启后再试
安装Cuda
代码语言:javascript复制到Cuda 下载地址下载适合自己的Cuda文件,建议下载runfile格式,比如我下载的
cuda_10.2.89_440.33.01_linux.run
,在文件所在文件夹安装:
sudo sh cuda_10.2.89_440.33.01_linux.run
- accept
- n (不安装驱动)
- y
- y
- y
代码语言:javascript复制设置环境变量,在~/.bashrc 文件末尾加入:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
代码语言:javascript复制终端运行:
source ~/.bashrc
代码语言:javascript复制运行:nvcc --version,如果显示类似如下信息说明安装成功
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
安装Cudnn
代码语言:javascript复制到Cudnn下载页面下载与驱动、Cuda、需要运行软件要求相应的版本(需要注册Nvidia账号)。 Ubuntu可以下载
.solitairetheme8
格式文件,只要将扩展名改为tgz
即可解压
tar -xvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
得到名为cuda的文件夹,在当前目录(不要进入cuda)运行:
Cudnn version < 8.0
代码语言:javascript复制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
可查看版本
Cudnn version ≥ 8.0
代码语言:javascript复制sudo cp cuda/include/* /usr/local/cuda/include/
sudo cp cuda/lib64/* /usr/local/cuda/lib64/
sudo chmod x /usr/local/cuda/include/cudnn.h
sudo chmod x /usr/local/cuda/lib64/libcudnn*
输入
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
可以查看版本
安装测试
代码语言:javascript复制查看显卡信息:
nvidia-smi
代码语言:javascript复制查看Cuda版本:
nvcc -V
查看Cudnn版本
cudnn version < 8.0
代码语言:javascript复制cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cudnn version ≥ 8.0
代码语言:javascript复制cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2