画像処理装置
画像処理装置 (GPU) とは、ディスプレイに表示されるビデオフィードを生成する、コンピュータ内のハードウェアです。GPU には、Integrated Graphics Processors (IGP) と 専用 GPU (ディスクリート GPU) の2種類があります。特に、後者はWikipedia:ja:グラフィックスカードとも呼ばれています。この頭字語は、グラフィックスカード全てを指す言葉としてしばしば用いられます。
GPU は並列計算を得意とするので、GPUによる汎用計算 (GPGPU) にも用いられています。
インストール
Linux カーネルには、オープンソースのビデオドライバが含まれており、ハードウェアアクセラレーション付きのフレームバッファをサポートしています。しかし、OpenGL、Vulkan、Xorg における 2D アクセラレーション、そしてハードウェアビデオアクセラレーションに関しては、ユーザランドでのサポートが必要です。
まず、使用しているグラフィックスカードを確認してください (Subsystem の部分に固有モデルが表示されます):
$ lspci -vnnd ::03xx
次に、対応するビデオドライバをインストールする必要があります。以下の表に代表的なベンダー3社が挙げられています。
32ビットのソフトウェアに関しては、multilib リポジトリを有効化し、lib32- という接頭辞がついたユーザ空間のドライバをインストールしてください (例えば、lib32-mesa、lib32-vulkan-radeon、lib32-nvidia-utils などです)。
X11 に関しては、他の Device Dependent X (DDX) ドライバは、xorg-drivers パッケージグループからインストールするか、xf86-video で検索して特定のパッケージをインストールすることができます。ほとんどの場合、DDX ドライバをインストールする必要はありません。詳細は、Xorg#ドライバ を見てください。
AMD
AMD はオープンソースのドライバをサポートしています。かつてプロプライエタリなドライバが提供されていましたが、もはやパッケージは存在しません。[1][2]
GPU ファミリ毎の VA-API のサポートに関しては、ハードウェアビデオアクセラレーション#比較一覧 を見てください。
| ドキュメント | GPU ファミリ | DRM ドライバ | OpenGL | Vulkan | DDX ドライバ |
|---|---|---|---|---|---|
| AMDGPU | GCN 3 及びそれ以降 (例: RDNA 1-4) | Linux に同梱 | mesa | vulkan-radeon | xf86-video-amdgpu2 |
| AMDGPU1 / ATI | GCN 1&2 | 使用するドライバによる | |||
| ATI | R300 から TeraScale まで | 無し | xf86-video-ati2 | ||
| R100 & R200 | mesa-amber | ||||
| Rage 4 及びそれ以前 | 利用できません [3][4] | ||||
- linux ≥ 6.19 でデフォルトで有効化されています。それ以外のバージョンでは、手動で選択できます。
- 問題なく動作させるには、modesetting ドライバを使用する必要があります。
Intel
Intel は、オープンソースドライバを提供しており、かつサポートしています。ただし、PowerVR ベースのグラフィックス (GMA 3600 シリーズ) はサポートされていません。
GPU ファミリ毎の VA-API のサポートに関しては、ハードウェアビデオアクセラレーション#比較一覧 を見てください。以下は、パッケージのみを記載しています。
| ドキュメント | GPU ファミリ | DRM ドライバ | OpenGL | Vulkan | DDX ドライバ | VA-API |
|---|---|---|---|---|---|---|
| Intel graphics | 第12.1世代及びそれ以降 | Linux に同梱 | mesa | vulkan-intel1 | xf86-video-intel2 | intel-media-driver |
| 第8世代から第11世代まで | intel-media-driver またはレガシーな libva-intel-driver | |||||
| 第7世代 & 第7.5世代 | libva-intel-driver | |||||
| 第5世代 & 第6世代 | 無し | |||||
| 第3世代から第4.5世代まで | 無し | |||||
| 第2世代 | mesa-amber |
- 第7世代と第7.5世代はサポートが不完全で、第8世代は Vulkan 1.3 に制限されています。
- 第3世代及びそれ以降のハードウェアでは、modesetting DDX ドライバが推奨されています。詳細は インテルグラフィックス#インストール を見てください。
NVIDIA
NVIDIA は完全にオープンソースなドライバをサポートしていません。NVIDIA は2022年からハイブリッドなアプローチ (オープンな DRM ドライバとクローズドなユーザランドドライバ) を取り始めました。
どの API がサポートされているかについては、ハードウェアビデオアクセラレーション#NVIDIA を見てください。GPU ファミリ毎の詳細は ハードウェアビデオアクセラレーション#VDPAU ドライバ を見てください。
| ライセンス | ドキュメント | GPU ファミリ | DRM ドライバ | OpenGL | Vulkan | DDX ドライバ |
|---|---|---|---|---|---|---|
| オープン | Nouveau1 | Kepler (NVE0/GKXXX) 及びそれより新しいもの | Linux に同梱 | mesa | vulkan-nouveau | xf86-video-nouveau2 |
| Fahrenheit (NV04/05) から Fermi (NVC0/GF1XX) まで | 無し | |||||
| オープンな DRM ドライバ、プロプライエタリなユーザランドドライバ | NVIDIA1 | Turing (NV160/TUXXX) 及びそれより新しいもの | nvidia-open | nvidia-utils | ||
| プロプライエタリ | Maxwell (NV110/GMXXX) から Ada Lovelace (NV190/ADXXX) まで |
nvidia-580xx-dkmsAUR | nvidia-580xx-utilsAUR | |||
| Kepler (NVE0/GKXXX) | nvidia-470xx-dkmsAUR | nvidia-470xx-utilsAUR | ||||
| Fermi (NVC0/GF1XX) | nvidia-390xx-dkmsAUR | nvidia-390xx-utilsAUR | 無し | nvidia-390xx-utilsAUR | ||
| Tesla (NV50/G80-90-GT2XX) | nvidia-340xx-dkmsAUR | nvidia-340xx-utilsAUR | nvidia-340xx-utilsAUR | |||
| Curie (NV40/G70) 及びそれより古いもの | パッケージはもう存在しません | |||||
- 専用 GPU と合わせて統合ビデオカードを使用する NVIDIA Optimus のあるノート PC については、NVIDIA Optimus を見てください。
- NV50 (G80)及びそれ以降においては、modesetting DDX ドライバが推奨されています。詳細は Nouveau#インストール を見てください。
ロード
ほとんどのカーネルモジュールドライバは、システムのブート時に自動的にロードされるはずです。
ロードされない場合は:
- カーネルパラメータに
nomodesetやvga=が含まれていないことを確認してください。ドライバは KMS を必要とするためです。 - また、カーネルモジュールブラックリストによってドライバが無効化されていないことを確認してください。
モニタリング
GPU のモニタリングは、GPU の温度、コアと VRAM の使用量、P-state を確認するために行われます。
CLI
- amdgpu_top — AMDGPU の使用率を表示するツール
- nvtop — AMD、Intel、NVIDIA 用の、GPU プロセスモニタリングツール
- radeontop — GPU 使用率ビューア。全体のアクティビティのパーセンテージと個々のブロックの両方を確認できます。ATI の R600 及びそれより新しい GPU、さらに AMDGPU ドライバを使用するカードで動作します。
- nvidia-smi — NVIDIA のプロプライエタリドライバにバンドルされている、Fermi 及びそれより新しい NVIDIA GPU 用の CLI モニタリングツール。
GUI
- amdgpu_top — AMDGPU の使用率を表示するツール
- AmdGuid — 完全に Rust 製の基本的なファン制御 GUI。
- Radeon Profile — AMD Radeon カード現在のクロックを読み取ったり変更したりできる Qt5 ツール。
- TuxClocker — Qt5 のモニタリング及びオーバークロックツール
- Plasma System Monitor — システムのセンサー、プロセス情報、他のシステムリソースをモニタリングするインターフェイス。KDE Plasma にバンドルされています。
- LACT — Linux システムで AMD、NVIDIA、Intel GPU を制御できます。