Ubuntu 20.04 に NVIDIA ドライバをインストールします。これにより、FFmpeg で NVENC を使用したハードウェアエンコードや GPU サポートされた TensorFlow などを使用することができます。
環境
私の環境は以下のとおりです。
OS
- Ubuntu 20.04.2 LTS (5.11.0-25-generic)
ビデオカード
- MSI GeForce GTX 1050 2GT LP
手順
まず、インストールできそうなドライバ一覧を確認してみます。下記のコマンドを実行します。
ubuntu-drivers devices
結果、
WARNING:root:_pkg_get_support nvidia-driver-390: package has invalid Support Legacyheader, cannot determine support level
== /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-460-server - distro non-free
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-460 - distro non-free
driver : nvidia-driver-470 - distro non-free recommended
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-450-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
この時点では、nvidia-smi コマンドを実行することができません。
$ nvidia-smi
Command 'nvidia-smi' not found, but can be installed with:
sudo apt install nvidia-utils-435 # version 435.21-0ubuntu7, or
sudo apt install nvidia-utils-440 # version 440.82+really.440.64-0ubuntu6
sudo apt install nvidia-340 # version 340.108-0ubuntu5.20.04.2
sudo apt install nvidia-utils-390 # version 390.144-0ubuntu0.20.04.1
sudo apt install nvidia-utils-450-server # version 450.142.00-0ubuntu0.20.04.1
sudo apt install nvidia-utils-460 # version 460.91.03-0ubuntu0.20.04.1
sudo apt install nvidia-utils-418-server # version 418.211.00-0ubuntu0.20.04.1
sudo apt install nvidia-utils-460-server # version 460.91.03-0ubuntu0.20.04.1
sudo apt install nvidia-utils-470 # version 470.57.02-0ubuntu0.20.04.1
recommended されているドライバをインストールし、OS を再起動します。
sudo ubuntu-drivers install
sudo reboot
再起動後、nvidia-smi コマンドを実行してみます。ドライバのバージョンが 470、CUDA のバージョンが 11.4 であることがわかります。
$ nvidia-smi
Sat Jul 24 21:35:37 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| 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 |
| 45% 45C P0 N/A / 75W | 406MiB / 1966MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 918 G /usr/lib/xorg/Xorg 215MiB |
| 0 N/A N/A 1218 G /usr/bin/gnome-shell 188MiB |
+-----------------------------------------------------------------------------+
再インストール
私の環境では、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
参考情報
NVIDIA の方の投稿によると、NVIDIA ドライバは cuda-drivers パッケージでインストールすることがオススメとのことです。