Ubuntu 22.04にNVIDIA Driverをインストール

Ubuntu 22.04 に NVIDIA ドライバをインストールします。これにより、FFmpeg で NVENC を使用したハードウェアエンコードや GPU サポートされた TensorFlow などを使用することができます。

環境

私の環境は以下のとおりです。

OS

  • Ubuntu 22.04 LTS (5.15.0-27-generic)

ビデオカード

  • MSI GeForce GTX 1050 2GT LP

手順

まず、インストールできそうなドライバ一覧を確認してみます。下記のコマンドを実行します。

ubuntu-drivers devices

結果、

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C81sv00001462sd00008C97bc03sc00i00
vendor   : NVIDIA Corporation
model    : GP107 [GeForce GTX 1050]
driver   : nvidia-driver-510 - distro non-free recommended
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-510-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

2022-04-29 の時点では 510 が推奨されていました。また、ドライバをインストールしていない時点では、nvidia-smi コマンドを実行することができません。

$ nvidia-smi
Command 'nvidia-smi' not found, but can be installed with:
sudo apt install nvidia-utils-390         # version 390.147-0ubuntu1, or
sudo apt install nvidia-utils-418-server  # version 418.226.00-0ubuntu4
sudo apt install nvidia-utils-450-server  # version 450.172.01-0ubuntu3
sudo apt install nvidia-utils-470         # version 470.103.01-0ubuntu2
sudo apt install nvidia-utils-470-server  # version 470.103.01-0ubuntu2
sudo apt install nvidia-utils-510         # version 510.60.02-0ubuntu1
sudo apt install nvidia-utils-510-server  # version 510.47.03-0ubuntu3

recommended されているドライバをインストールし、OS を再起動します。

sudo ubuntu-drivers install
sudo reboot

再起動後、nvidia-smi コマンドを実行してみます。ドライバのバージョンが 510、CUDA のバージョンが 11.6 であることがわかります。

$ nvidia-smi
Fri Apr 29 23:42:27 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.60.02    Driver Version: 510.60.02    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| 43%   42C    P8    N/A /  75W |    825MiB /  2048MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1701      G   /usr/lib/xorg/Xorg                399MiB |
|    0   N/A  N/A      1798      G   ...ome-remote-desktop-daemon        1MiB |
|    0   N/A  N/A      1834      G   /usr/bin/gnome-shell              171MiB |
|    0   N/A  N/A      3872      G   ...795134509380179709,131072      172MiB |
|    0   N/A  N/A      4190      G   ...RendererForSitePerProcess       44MiB |
+-----------------------------------------------------------------------------+

再インストール

私の環境では、Linux PC を電源ボタン長押しでシャットダウンすると、次回起動した際に NVIDIA ドライバが壊れる?ことがよくあります。

ERROR: for xxx  Cannot start service xxx: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown
ERROR: Encountered errors while bringing up the project.

そのような場合は、NVIDIA ドライバをいったんアンインストールし、再度インストールします。

sudo apt remove nvidia-driver-*
sudo apt autoremove
sudo ubuntu-drivers install
sudo reboot