不同版本的CUDA要求不同的NVIDIA驱动版本,同时显卡驱动版本要不低于CUDA的安装版本,参见官网列表,具体的对照关系如下:
由于本人想要安装cuda10.2,所以驱动版本需要≥440.33,所以我选择最新版的总没错。
(lspci | grep -i vga 命令查看显卡型号)
如果是新电脑,电脑里不会有旧驱动,这一步可以不执行。
sudo apt-get remove --purge nvidia*
这里主要讲一下禁用nouveau的方法,因为折腾了蛮久,用了网上蛮多方法没有成功,最后使用第三种方法才成功:
(0) 备份boot文件
(1) 更改conf文件
打开文件
sudo gedit /etc/modprobe.d/blacklist.conf
在文件末尾添加以下几行命令 :
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
options nouveau modeset=0
(2) 更新Linux系统内核
sudo update-initramfs -u
(3) 重启并检查Security Boot状态以及nouveau驱动是否成功被禁
(1)一般情况下,在安装Linux系统时,就已经把Security Boot的状态改成Disable了,可以再次检查一下。
(2)sudo reboot 重启电脑后,打开终端输入命令以查看nouveau驱动是否成功被禁,命令无返回则是成功禁用。
lsmod | grep nouveau
遗憾的是我运行后仍有输出内容,说明没有禁用成功。
(1)打开/lib/modules/目录
sudo find -name nouveau*
(2)然后将查找到的ko文件重命名
sudo mv ./4.15.0-45-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko ./4.15.0-45-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.bkp
sudo mv ./4.15.0-132-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko ./4.15.0-132-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.bkp
(3)更新Linux系统内核
sudo update-initramfs -u
(4)重启并检查Security Boot状态以及nouveau驱动是否成功被禁
(1)一般情况下,在安装Linux系统时,就已经把Security Boot的状态改成Disable了,可以再次检查一下。
(2)sudo reboot 重启电脑后,打开终端输入命令以查看nouveau驱动是否成功被禁,命令无返回则是成功禁用。
lsmod | grep nouveau
遗憾的是我运行后仍有输出内容,说明没有禁用成功。
鸣谢:《NVIDIA驱动安装之禁用nouveau》
《如何将内核模块列入黑名单? 》
(1)增加内核参数禁用
sudo nano /etc/default/grub
在末尾增加 modprobe.blacklist=nouveau
即GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=nouveau"
modprobe 用于向Linux Kernel添加 或 移除 kernel modules。 kernel modules以.ko作为扩展名。这里是增加了一个黑名单,在grub时禁用掉该模块。
(2)重新新生成配置
sudo update-grub2
(3)更新Linux系统内核
sudo update-initramfs -u
(4)重启及nouveau驱动是否成功被禁
sudo reboot 重启电脑后,发现开机时界面是这样,并保持了挺长时间,这时候莫动,唯一的就是等待
等加载出图形界面后,即可登进系统,打开终端输入命令以查看nouveau驱动是否成功被禁,命令无返回则是成功禁用。
lsmod | grep nouveau
部分工程师喜欢用关闭图形界面,在命令行中安装显卡驱动,所以此步非必要(反正我未使用):
sudo init 3
或者输入
sudo service lightdm stop
cd 驱动放置文件夹
sudo sh NVIDIA-Linux-x86_64-460.32.03.run -no-x-check -no-nouveau-check -no-opengl-files
参数解释:
安装进行时的选项 :
选项 | 选择 |
The distribution-provided pre-install script failed! Are you sure you want to continue? | Continue |
Unable to find a suitable destination to install 32-bit compatibility libraries. Your system may not be set up for 32-bit compatibility. 32-bit compatibility files will not be installed; if you wish to install them, re-run the installation and set a valid directory with the --compat32-libdir option. | OK |
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 |
Your X configuration file has been successfully updated. Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version: 430.40) is now complete. |
OK |
在命令行中输入:
nvidia-smi
如出现以下画面,即证明已正确安装:
(1)下载
去官网下载CUDA,选Ubuntu16.04对应的 runfile(local) 文件,默认下载到Home目录下:
CUDA官网下载地址
(2)安装
在执行安装命令时:
sudo sh cuda_10.2.89_440.33.01_linux.run
在出现的提示中选择continue和键入“accept”,直到出现下图:
由于nvidia的显卡驱动刚才安装过了,那么只需要移动到Driver,按enter键,将"[X]"中的X去掉即是不选择,然后移动到Install再回车,等待后出现下图表示安装成功:
(3)添加环境变量(两种方式)
方法I、修改home目录下的.bashrc文件,只针对当前用户
sudo gedit ~/.bashrc
在文件末尾添加:
export PATH="/usr/local/cuda-10.2/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH"
使其生效:
source ~/.bashrc
方法II、修改profile文件,针对所有用户
sudo gedit /etc/profile # 修改/etc/profile文件
文件末尾增加以下两行代码
export PATH="/usr/local/cuda-10.2/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH"
使其生效:
source /etc/profile
(4)验证安装成功
输入命令nvcc -V,显示版本信息即安装成功。
(1)下载
下载地址:https://developer.nvidia.com/cudnn(需要注册账号才能下载)
下载后文件为:
(2)安装
执行命令安装3个库文件(先runtime、再developer、最后samples)
sudo dpkg -i libcudnn8_8.0.3.33-1+cuda10.2_amd64.deb
sudo dpkg -i libcudnn8-dev_8.0.3.33-1+cuda10.2_amd64.deb
sudo dpkg -i libcudnn8-samples_8.0.3.33-1+cuda10.2_amd64.deb
(3)验证是否成功
方法I、样例验证
验证cuDNN在Linux上是否安装成功。为了验证cuDNN已经安装并正确运行,需要编译位于/usr/src/cudnn_samples_v8目录下的mnistCUDNN样例:
1)复制cuDNN samples到home目录下
$ cp -r /usr/src/cudnn_samples_v7 /$HOME
2) 进入home目录
$ cd $HOME/cudnn_samples_v7/mnistCUDNN/
3) 编译mnistCUDNN
$ sudo make clean
$ sudo make
4)运行mnistCUDNN
$ sudo ./mnistCUDNN
(运行需要一段时间)如果出现Test passed! 表明cuDNN已安装成功。
方法II、安装完 Anaconda3 及 torch1.7.1 后再进行验证
# !/usr/bin/python
#-*- coding: UTF-8 -*-
import torch
# 正常没有输出
a = torch.tensor(1.)
# 正常没有输出
from torch.backends import cudnn
# 正常没有输出
cudnn.is_available()
# 正常返回True
cudnn.is_acceptable(a.cuda())
(1)版本确定
由于本人想安装pytorch,根据torch官网信息想选择python3.6,以此选择Anaconda3版本为Anaconda3-5.2.0-Linux-x86_64.sh。
(2)下载
在清华大学开源软件镜像站下载
下载后文件为:
(2)安装
1)打开terminal;
2)打开下载文件的位置:
cd Downloads/
3)运行 .sh 文件:
bash Anaconda3-5.2.0-Linux-x86_64.sh
4)进入注册信息页面,输入yes;
5)阅读注册信息,然后输入yes;查看文件即将安装的位置,按enter,即可安装;
6)进入安装过程:
7)安装完成后,收到加入环境变量的提示信息,输入yes;
8)看到以下信息说明已经安装完成。
9)提示信息“Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]”,输入no;
10)环境变量配置
sudo gedit ~/.bashrc
#在末尾添加以下命令:
export PATH="/home/pci/anaconda3/bin:$PATH"
使其生效:
source ~/.bashrc