Ubuntu日和
【第15回】おっとIntelのdGPUはUbuntu用のドライバがリリースされているだと……よっしゃNVIDIAもAMDもまとめてDeskMeet X300で動作させるぞ!(NVIDIAとAMD編)
2022年11月19日 07:23
本誌の読者であれば解説の必要はないかもしれないが、現在大手GPUベンダーは3社で、NVIDIA、AMD、Intelである。
このうちIntelは長らくCPU統合GPU(iGPU)のみを提供していたが、現在はディスクリートGPU(dGPU)も提供している。
NVIDIAはPCに関してはiGPUを提供していない。かつてチップセットのノースブリッジにGPUが内蔵されていた時代のことを覚えている読者もいるかもしれない。IONはよいものであった。
AMDはiGPUとdGPUのいずれも提供している。
ハードウェアを使用するためにはデバイスドライバ(以下ドライバ)が必要で、3社ともに自社でUbuntu用のドライバを提供しているが、Ubuntuではインストール時点でなんとなく画面が出ているため、そのまま使用することが多い。
よって、あまり意識しないUbuntuとGPUドライバについて解説する。3社ともスタンスの違いがかなりあるので、興味深い話題のはずだ。
NVIDIA
NVIDIAのGPU用ドライバは、NVIDIAが提供しているプロプライエタリ(=オープンソースではない)ものと、コミュニティによって提供されているオープンソースのドライバ(Nouveau)が存在している。
Ubuntuはインストール時点ではオープンソースのものだけを利用するというポリシーのため、Nouveauドライバが使用される。しかしNouveauは画面表示できるくらいの機能しかなく、場合によっては表示できないこともあるくらいだ。GPUの実力を引き出すとかそういうスタートラインに立つことすらも難しいが、NVIDIAの秘密主義によるものなので致し方ない。最近は多少軟化しているのでNouveauの開発が進むことも期待したい。
よってNVIDIAのGPUを使用する場合は事実上プロプライエタリなドライバのインストールは必須だ。Ubuntuではわりと手厚くサポートしており、インストール時に「グラフィックスとWi-Fiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする」にチェックを入れると、NVIDIAのGPUを使用している場合はインストールイメージに収録されているプロプライエタリなドライバがインストールされる。
……はずであるが、今回の検証環境ではそうはならなかった。どうやら現在はバグの影響があるようだ。
あとからNVIDIA製GPUを搭載したビデオカードを増設した場合、あるいは今回のように自動的にプロプライエタリなドライバがインストールされなかった場合は「追加のドライバ」から簡単にインストールできる。ただし現在は「検証済み」とついているものを選択すればいいわけではないのは少し難しい。「(open kernel)」とついているものは避け、バージョンの一番高いものを選択する。
今回は「NVIDIA driver metapackageをnvidia-520から使用します(プロプライエタリ)」を選択した。「変更の適用」をクリックしてしばらく待つとドライバがインストールされるので、「再起動」ボタンが増えたらこれをクリックして再起動する。
NVIDIAのプロプライエタリなドライバはアップデートも迅速に提供され、例外を除けば一度インストールするとあとはうまく動いてくれることが期待できる。
しかし、現状Waylandセッションには対応していない。正確にはドライバレベルでは対応しているが、Ubuntuで有効にしていない。
AMD
NVIDIAとは反対に何でもかんでもオープンソースにしているがAMDの特徴だ。オープンソース版ドライバの開発的に積極的に関わっているため、Ubuntuをインストールした時点で高品位なドライバが使用できる。もちろんWaylandセッションもデフォルトで使用できる。該当のパッケージをインストールすればOpenCLやVulkanにも対応する。
AMDのドライバをダウンロードするWebページでは、UbuntuやほかいくつかのLinuxディストリビューション用ドライバがダウンロードできる。このドライバにはOpenCLやVulkanの実行環境も含まれる。コンシューマー向けはオープンソースで、ワークステーション向け(Radeon Pro)はプロプライエタリだ。
NVIDIAのCUDAに対抗するプロダクトがROCmだが、これもオープンソースである。まさに至れり尽くせりだ。ただし今回はROCmは使用しない。
ドライバがオープンソースであるメリットは、開発者ではないユーザーにもある。まずはNVIDIAはドライバに制限をかけるようなことが難しくなる。
またオープンソースであることは用途が限定されないということでもあるので、ワークステーション用にはあれを使え、スーパーコンピューター向けにはこれを使えといったこともできなくなる。大規模にデプロイするような場合でも、さまざまな選択肢が取れる。
オープンソースドライバのよさがわかったところで、AMDが配布しているドライバのインストール方法を紹介する。まずは普通にドライバとサポートからGPUの型番を選択する。今回はRadeon RX 6600 XTを使用するので、これを選択する。
するとWindows用のほかにもUbuntu用(Radeon Software for Linux)もあるので、Ubuntu 22.04用をダウンロードする。パッケージにドライバが含まれているわけではないのでダウンロードは一瞬で終了する。20.04 LTS用も同じパッケージ名なので、間違えないように気をつけよう。
ダウンロードしたパッケージのインストール方法は、ダブルクリックしてUbuntuソフトウェア経由でもいいし、端末から次のコマンドを実行するのでもいい。
$ sudo apt install ./amdgpu-install_(バージョン)_all.deb
なお今回使用したバージョンは22.20だ。
OpenCLとVulkanを有効にしてインストールする場合は、次のコマンドを実行する。
$ sudo amdgpu-install --usecase=graphics --vulkan=amdvlk --opencl=rocr
再起動するとインストールしたドライバが適用される。
なおRadeon Software for Linuxはパッケージのアップデートに関してはまったく考慮されていない。アップデートを行ないたい場合はAMDのWebサイトからDebパッケージをダウンロードし、「sudo amdgpu-uninstall」で現在インストールされているパッケージを削除してから再びインストールコマンドを実行することになる。
HWEカーネルのアップデート前やUbuntuそのもののアップグレード前など「amdgpu-uninstall」コマンドを実行する機会は何かと多い。またアップデートの提供が遅いという懸念事項もある。カーネルのアップデートを行なうとドライバ(カーネルモジュール)のビルドに失敗することもまれにある。
このようにRadeon Software for Linuxをインストールするとメンテナンスの手間が増える。Ubuntuのインストール時点で普通に認識しているのであれば、インストールする必要はないであろう。ただし後にリリースされる新GPUを22.04 LTSで使用したいような場合には、インストールする必要が出てくる。具体的には近日中にリリースが見込まれているRadeon RX 7000シリーズが該当する。
続く
あまりにも長くなってしまったため、IntelのGPUと軽いベンチマークに関しては次回(12月3日公開予定)としたい。