飞行的蜗牛

一个正在觉醒的无名氏修行者,略懂编程,略懂音乐。

Ubuntu 安装 NVDIA GPU 驱动以及 CUDA Tool

::: motto
老,是物理功能的退化。衰,是精神的颓废。

机器永远不会累,但是它可以停下来。而人即使再累,也必须永远走下去。
:::

本文介绍如何安装 NVDIA GPU 驱动以及 CUDA 工具包。

提示:本人测试的操作系统是 Ubuntu 18.04.3 LTS

一、安装 ubuntu-drivers 工具组件

1
sudo apt-get install ubuntu-drivers-common

二、安装 GPU 驱动

首先我们可以看下目前我们可以看下机器上的显卡型号和驱动版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001392sv00001558sd00003501bc03sc02i00
vendor : NVIDIA Corporation
model : GM107M [GeForce GTX 860M]
driver : nvidia-driver-390 - distro non-free
driver : nvidia-340 - distro non-free
driver : nvidia-driver-435 - distro non-free recommended
driver : nvidia-driver-430 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin

== /sys/devices/pci0000:00/0000:00:1c.2/0000:03:00.0 ==
modalias : pci:v00008086d000008B3sv00008086sd00000070bc02sc80i00
vendor : Intel Corporation
model : Wireless 3160 (Dual Band Wireless-AC 3160)
manual_install: True
driver : backport-iwlwifi-dkms - distro free

可以看到我们当前笔记本的显卡型号是 GeForce GTX 860M,可选驱动有 nvidia-driver-390, nvidia-driver-430 等。
系统推荐我们安装 nvidia-driver-435。如果你同意系统推荐,你可以通过下面的命令安装系统所推荐的驱动程序。

1
sudo ubuntu-drivers autoinstall

当然,如果你自己明确知道哪个驱动程序是适合你当前的显卡的,那么你可以直接安装指定的那款驱动。

1
sudo apt install nvidia-driver-435

三、安装 CUDA 工具包

这个建议直接按照官方的文档安装就好了。根据自己的操作系统版本,选择对应的安装指引。

https://developer.nvidia.com/cuda-downloads

我选择的是 Linux -> x86-64 -> Ubuntu -> 18.04 -> deb(local)

1
2
3
4
5
6
7
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

装完之后重启就 OK 了。重启之后我们可以通过 nvidia-smi 命令查看 GPU 的工作状态。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
nvidia-smi 
Sat Feb 1 13:37:16 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01 Driver Version: 440.33.01 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 860M On | 00000000:01:00.0 Off | N/A |
| N/A 46C P5 N/A / N/A | 399MiB / 2004MiB | 0% Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2036 G /usr/lib/xorg/Xorg 201MiB |
| 0 3992 G /usr/bin/compiz 120MiB |
| 0 4180 G ...quest-channel-token=9014704928365584033 73MiB |
+-----------------------------------------------------------------------------+

四、踩坑记录

如果你安装的高版本的驱动,比如 nvidia-driver-450 以上的,在安装 CUDA 的过程中,可能会出现依赖错误。类似:

1
2
3
4
5
The following packages have unmet dependencies:
nvidia-cuda-toolkit: Depends: nvidia-cuda-dev (= 11.0.85-3ubuntu) but it is not going to be installed.
...
you might want to run 'apt --fix-broken install' to correct these.
...

解决方案

首先,按照命令行的提示,运行:

1
sudo apt --fix-broken install 

如果,你可以成功安装,那么恭喜恭喜,成功解决。如果你也像我一样,出现类类似下面的错误:

1
dpkg error process archive /var/cache/apt/archives/nvidia-cuda-dev...

命令行提示我们重写文件的时候,发生了冲突。这意味着,我们要么强制重写这个文件,或者将这个冲突文件删除,重新安装依赖包。

在这里我选择重写文件:

1
sudo dpkg -i --force-overwrite [文件名]

这里的文件名就是上面错误中提示的那个 /var/cache/apt/archives/nvidia-cuda-dev_xxxx.deb

完成上一步之后,尝试再运行:

1
sudo apt --fix-broken install

这次应该就可以执行成功了。之后你就可以重新安装你的 cuda 程序了。

1
sudo apt-get -y install cuda