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