⚙️

Ubuntu 22.04 LTSでNVIDIA GPUドライバの選び方

に公開

はじめに

Linuxにおけるプロプライエタリなドライバのインストールは難航しやすいと思います。(個人的に何度も環境が壊され泣くことに...。)
どのようにインストールするか、明確な指針を立てておきたいと思います。

ubuntu-driversについて

ubuntu-drivers devices

このコマンド群により推奨される・導入可能なドライバは、Ubuntuのメンテナにより維持されています。
例:nvidia-graphics-drivers-535, nvidia-graphics-drivers-545

  • アップデートが遅い
  • 最新のバージョンが無い

などの理由で、後述のPPAが使われていることが多いですが、少なくとも535に関してはNVIDIAが提供する最新バージョンのようです。現在サポートされているGPUに対しては、535か545をインストールすることが基本でしょう。535と545の違いは、製品ブランチか新機能ブランチかの点です。

NVIDIAのドライバは大きく分けて3つ種類に分類されます。説明は公式ヘルプより引用

  • 製品ブランチ

    こちらはライフサイクルの長い (1 年の期間でブランチに複数のリリースがある) ドライバー ブランチで、NVIDIA RTX/Quadro のプロフェッショナルのお客様向けに、ISV 認定、最適な安定性とパフォーマンス、定期的なセキュリティ アップデートを提供します。このドライバーは以前 Optimal Driver for Enterprise (ODE) と呼ばれており、企業の本番環境システムで一般的にデプロイされています。

  • 新機能ブランチ

    これはライフサイクルの短いブランチ ドライバー (ブランチごとにリリースは 1-2 回のみ) で、新しい NVIDIA RTX/Quadro の機能が導入されており、製品ブランチ リリースの合間に利用することができます。新機能ブランチ ドライバーは、以前 Quadro New Feature (QNF) と呼ばれていましたが、通常は新しいオペレーティング システム、サードパーティ製ハードウェア、ゲーム エンジンのサポートを提供します。

  • ベータ版

適したドライバの判別法

前述のubuntu-drivers devicesコマンドにより、推奨されるドライバは誤る場合があるため、基本的に以下の流れで判別するほうが良いでしょう。

  1. NVIDIAドライバダウンロードのページにアクセスし、GPUの情報を入力する。
  2. "NVIDIAの推奨"が表示されているバージョンを確認する。
  3. 必要に応じて"NFB(新機能ブランチ)"のバージョンも確認する。
  4. この際、推奨されるバージョンが複数存在する場合は、必要な機能や、安定動作を考慮し、新旧を選ぶ。

オープンソースドライバについて

最近NVIDIAはオープンソースのドライバを提供するようになりました。(≠Nouveau)
オープンソースドライバはLinuxにおける重要な役割を果たしていますが、深層学習など、性能が求められる場面では不向きといえます。ここでは-openと付くドライバはインストールしないよう注意しましょう。

インストール方法

ドライバの定期的なアップデートや、Ubuntuのカーネルのアップデートなどに対応するために、aptを用いてDKMSパッケージをインストールするのが良いでしょう。

Proprietary GPU Driversについて

sudo add-apt-repository ppa:graphics-drivers/ppa

このコマンドにより追加できるPPAリポジトリは、Ubuntu公式であり、NVIDIAから提供されるドライバを上流に持つDKMSパッケージを提供しています。
GPUドライバのみが欲しい, Ubuntuチームによりテストされたドライバが良いといった場合に適していると考察されます。

NVIDIAが提供するaptリポジトリ

CUDAリポジトリ (Ubuntu 22.04のもの)にはNVIDIAが公式に配布しているdebパッケージが存在します。
深層学習においてはCUDAが必須であるため、この方法で導入するのが一番合理的であると考えられます。
インストールのコマンドは以下の通りです。

sudo apt install cuda-drivers(-version)

まとめ

  • GPUドライバだけが欲しい、Ubuntuチームがテスト済みのドライバが欲しい場合は、PPAリポジトリ
  • それ以外はNVIDIAが提供するaptリポジトリ
  • 何も追加せずに導入したい場合は、ubuntu-driversコマンド

Discussion