Home Ubuntu下nvidia driver和cuda版本管理
Post
Cancel

Ubuntu下nvidia driver和cuda版本管理

动机

记录下在Ubuntu 18.04nvidia driver 455.45cuda 10.1的安装过程。备后续重复安装时直接参照。

版本对应关系

cuda与nvidia driverhttps://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

可以看到,Driver对于CDUA版本是向下兼容的。表格内容可能过时,可以点击nvidia官网链接查看最新更新。

cuda与pytorch

较老版本的Pytorch:参见本页

最新版Pytorch:Pytorch首页给出了最新版Pytorch可用的组合和对应的安装命令。

以下以在Ubuntu 18.04下,安装nvidia driver 455.45与cuda 10.1 为例,记录安装过程。

安装/更新英伟达驱动(nvidia driver)

卸载原驱动(如若需要)

1
2
3
4
sudo nvidia-uninstall
sudo apt-get --purge remove nvidia-*

# ./NVIDIA-Linux-x86_64-390.48.run --uninstall

第一个弹窗选yes 参考 20:43

下载正确版本的驱动

查看显卡型号

1
 lspci | grep -i nvidia

部分老版本Ubuntu(如16.04)输出为一十六进制数,可以在The PCI ID RepositorySee also一栏下输入框查询该代码对应的显卡型号。

下载相应的驱动版本

nvidia驱动下载页手动搜索并下载所需的驱动版本。 在这里插入图片描述

安装新驱动

预备

首先,禁用系统自带的nouveau驱动

1
2
3
4
5
6
7
8
9
#创建配置文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf 
 
# 在打开的配置文件里添加如下内容
blacklist nouveau
options nouveau modeset=0
 
# 更新
sudo update-initramfs -u

Tips:打开vim后按inset开始编辑,编辑结束后vim的退出操作为:先按Esc,然后输入:wq

重启。(重启后分辨率可能会暂时性下降。在安装NVIDIA驱动完成后,重启即可恢复)

重启后在终端输入

1
lsmod | grep nouveau

如果输出为空,则禁用成功。

开始安装

进入刚才下载的驱动所在的目录,执行以下命令进行安装

1
sudo sh NVIDIA-Linux-x86_64-<your-driver-version>.run

按照默认设置,一路回车,不出意外便可顺利结束安装。

测试

1
nvidia-smi

输出

1
2
3
4
5
6
7
8
9
10
11
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.45.01    Driver Version: 455.45.01    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX TIT...  Off  | 00000000:01:00.0  On |                  N/A |
| 22%   58C    P8    21W / 250W |     90MiB / 12211MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

实际安装过程遇到过的一些问题

Failed CC version check. Bailing out!

1
2
3
4
5
6
Compiler version check failed:
The major and minor number of the compiler used to
compile the kernel:
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) 
does not match the compiler used here:
cc (Ubuntu 4.9.4-2ubuntu1~14.04.1) 4.9.4

将本机的gcc默认版本切换为当前编译所需版本即可(此处为将4.9.4切换为4.8.4)。

参考1-ubuntu下多个gcc版本切换

参考2-Ubuntu 16.04 GCC 7 & G++ 7 安装

  • 查看当前使用的gcc版本:gcc -v
    • 查看本机已安装哪些gcc版本:ls /usr/bin/gcc*
  • 切换gcc版本:sudo update-alternatives --config gcc
    • 根据输出,输入希望切换至的gcc版本对应的编号,即可完成切换。

no cc

1
2
sudo apt update
sudo apt install build-essential

对ubuntu系统自动更新的尝试

这种方法很是简便,但在我的电脑上尝试时,虽然可以获取相应更新,但是重启后驱动无法连接,也无法正常加载桌面。但也记录一下,没有行通可能只是我电脑本身的原因。

首先,更新系统软件源信息

1
sudo add-apt-repository ppa:graphics-drivers/ppa && sudo apt update

然后来到设置-软件和更新-附加驱动,选择希望更新至的驱动版本,点击应用更改,完成后重启。

安装/切换cuda版本

参考链接

下载并安装cuda

CUDA Toolkit Archive找到所需的cuda版本,选择runfile类型文件下载。

进入刚才下载文件所在的目录,执行以下命令进行安装

(执行本命令前请先看下面的

1
sudo ./cuda_<your_version>_linux.run  

希望一切顺利!

注:如果已经安装了nvidia驱动(常发生在安装新版本cuda的情况),这一步不需要再安装,取消默认选中的NVIDIA Driver(不取消不仅可能会安装失败,还可能导致重启时循环登录),如下

1
2
3
4
5
6
7
8
9
CUDA Installer                                                                 │
│ - [ ] Driver                                                                 │
│      [ ] 450.51.06                                                           │
│ + [X] CUDA Toolkit 11.0                                                      │
│   [ ] CUDA Samples 11.0                                                      │
│   [ ] CUDA Demo Suite 11.0                                                   │
│   [ ] CUDA Documentation 11.0                                                │
│   Options                                                                    │
│   Install      

按回车取消其他选项,仅保留CUDA Toolkit 11.0,选择Install继续安装。

cuda环境设置

~/.bashrc末尾添加

1
2
3
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

上面的路径都是指向/usr/local/cuda的软连接,而不是指向某一个具体的cuda版本,这样方便于后面进行cuda版本的切换。

执行以下命令使改动立即生效

1
source ~/.bashrc

叮叮,安装完成。

切换cuda版本

查看当前使用的cuda版本:nvcc -V

当电脑里安装了多个cuda版本,而想从一个版本切换到另外一个版本时,可以将软链接重指向至新版本:

1
2
3
cd /usr/local/ # 切到cuda所在目录下
sudo rm -rf ./cuda  # 删去原先使用的cuda版本的软链接
sudo ln -s cuda-10.1 cuda  # 创建一个新的软链接到希望切换到的cuda版本

再使用nvcc -V 看看cuda使用版本是否已经发生改变叭。

卸载cuda

1
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.1/bin

使用过程中出现过的问题及解决方案

其他

显示Nvidia显卡型号(已安装Nvidia驱动后):nvidia-smi -L

This post is licensed under CC BY 4.0 by the author.

VS code使用

Python积累