Ubuntu Weekly Recipe

第705回Radeon Software for Linuxを使用する[2022年版]

今回はAMDがリリースしているUbuntu用Radeonドライバーの使用方法を紹介します。第471回の更新になります。

Radeon用ドライバーについて

AMDはNVIDIAと違いドライバーをオープンソースで開発しています。アップストリームのカーネルやMESAで開発しているため、新しいUbuntuでは新しいGPUが使用可能となります。

それだけでなく、AMDもRadeonのドライバー配布ページでUbuntu用(だけではありませんが)ドライバーである「Radeon Software for Linux」を配布しています。第471回によると、2016年からドライバーとプロプライエタリなVulkan実行環境を含んで配布されていたようです。

それからしばらく経ち、2021年11月にリリースされた21.40.1で大きな変更がありました。

これまでは関連するパッケージを含んだ状態で配布しており、ローカルにリポジトリを作成してパッケージを取得するという方式でした。しかし21.40.1からはリポジトリの情報をパッケージとして配布し、ドライバーその他に関してAMDが用意しているリポジトリから取得するようになりました。すなわち、最初にダウンロードするファイルのサイズが劇的に小さくなりました[1]⁠。

また「GPU演算向けのオープン・ソフトウェア・プラットフォーム」であるROCmも含むようになりました。必ずしもオープンソースというわけではないようですが、OpenCLなどオープンソースでも使用可能な部分があります。

特にアナウンスはありませんが、AMDVLKによるVulkanのオープンソースドライバーも使用できるようになっています。

すなわち、21.40.1以降オープンソースでもOpenCLが高速化され、Vulkanまで使用できるようになりました。

AMDはまた、Radeon PROシリーズも展開しています。Radeon Software for LinuxはこのRadeon PROにも対応しており、より性能を引き出すためのプロプライエタリな部分(具体的にはOpenGLドライバーとVulkanドライバーが該当)を使用します。

よって次のように役割分担が明確になりました。

  • Radeon:オープンソースのみで構成
  • Radeon PRO:オープンソース+プロプライエタリ

長々と述べましたが、NVIDIA GeForceではクローズドソースにしている部分も、Radeonであればオープンソースで使用できるのが大きな特徴です。

今回使用したハードウェア

今回使用したハードウェアは、RD-RX6500XT-E4GB/SFです。写真を見ればわかるとおりOEM元はPowerColorです。GPUはRadeon RX 6500 XTです。

Radeon RX 6500 XTは広く伝えられているように、あまりにも割り切りがよすぎて便利な場面が限定されるため、お勧めするのはなかなか難しいです。筆者はOpenCLが高速化されたことを期待し[2]⁠、かつディスプレイ出力も1つあれば充分(むしろほとんどがヘッドレス運用[3]⁠)なので購入しました。

今回使用したRadeon Software for Linuxのバージョン

今回使用したRadeon Software for Linuxのバージョンは20.50です。Radeon RX 6500 XTとUbuntu 20.04.4 LTSのHWEカーネル(5.13)に対応した最初のバージョンです。

ここからもわかるように今回使用したUbuntuのバージョンは20.04 LTSです。カーネルのバージョンが同じなので21.10でも使用できるかもしれませんが、確認はしていません。

パッケージのダウンロードとインストール

パッケージのダウンロードは、Radeonのドライバー配布ページからGPUを選択し、⁠Ubuntu x86 64ビット」にある「Radeon Software for Linux installer version 21.50 for Ubuntu 20.04.4」「ダウンロード」をクリックします。

インストールは、ダウンロードしたパッケージをダブルクリックしてUbuntu Softwareを起動し、インストールするのが簡単でしょう。

Radeon Software for Linuxのインストール

Radeon Software for Linuxをインストールするには、端末を起動して次のコマンドを実行します。

$ sudo amdgpu-install --usecase=graphics --vulkan=amdvlk --opencl=rocr

これでVulkanとOpenCLともにオープンソースのバージョンを選択してインストールできます。

インストール完了後、再起動してください。⁠このシステムについて」を表示すると図1のようになりました。Radeon RX 6500 XTは「Beige goby[4]⁠」というコードネームであることがわかります。

図1 ⁠グラフィック」「Beige goby」になっている
図1

パッケージを確認する

インストールしたパッケージの中身を確認してみましょう。

$ dpkg -L amdgpu-install 
/.
/etc
/etc/apt
/etc/apt/sources.list.d
/etc/apt/sources.list.d/amdgpu.list
/etc/apt/sources.list.d/rocm.list
/etc/apt/trusted.gpg.d
/etc/apt/trusted.gpg.d/rocm-keyring.gpg
/usr
/usr/bin
/usr/bin/amdgpu-install
/usr/share
/usr/share/amdgpu-install
/usr/share/amdgpu-install/AMDGPUPROEULA
/usr/share/doc
/usr/share/doc/amdgpu-install
/usr/share/doc/amdgpu-install/changelog.Debian.gz
/usr/share/doc/amdgpu-install/copyright

おおむねリポジトリ情報とインストールスクリプトしかないことがわかります。

amdgpu.listの中身も見てみましょう。

$ cat /etc/apt/sources.list.d/amdgpu.list
deb https://repo.radeon.com/amdgpu/21.50/ubuntu focal main
#deb-src https://repo.radeon.com/amdgpu/21.50/ubuntu focal main

なんと、バージョンごとにリポジトリを分けています。新しいバージョンのドライバーがリリースされた場合は、パッケージのダウンロードをやり直してアップデートする方式を想定しているようで、注意が必要です。

ベンチマーク

それではPhoronix Test Suiteでグラフィック関連のテストを行った結果を見ていきましょう。

まずはゲームを3つほど試してみます。図2SuperTuxKart図3Tesseract図4Unigine Valleyです。なお図3はTesseract OCRとは別物で、ファーストパーソンシューティングゲームです。

図2 SuperTuxKartのベンチマーク
図2
図3 Tesseractのベンチマーク結果
図3
図4 Unigine Valleyのベンチマーク結果
図4

図2はほぼ差がなく、このクラスのGPUではSuperTuxKartだとベンチマークにならないほど軽いゲームであることがわかります。

図3と図4は、期待どおりの結果といえます。

次の図5から図14まではvkpeakというベンチマークのテストです。Vulkanの性能をさまざまな方式でテストしています。

図5 int16-scalarの結果
図5
図6 int16-vec4の結果
図6
図7 fp16-scalarの結果
図7
図8 fp16-vec4の結果
図8
図9 int32-scalarの結果
図9
図10 int32-vec4の結果
図10
図11 fp32-scalarの結果
図11
図12 fp32-vec4の結果
図12
図13 fp64-scalarの結果
図13
図14 fp64-vec4の結果
図14

表にまとめると次のとおりです。

Radeon RX 6500XT GeForce GTX 1650
int16-scalar(図5)
int16-vec4(図6)
fp16-scalar(図7)
fp16-vec4(図8)
int32-scalar(図9)
int32-vec4(図10)
fp32-scalar(図11)
fp32-vec4(図12)
fp64-scalar(図13)
fp64-vec4(図14)

32/64ビット浮動小数点と16ビットスカラーが高速で、あとは低速という傾向があるようです。もちろんこの結果だけで断言できるものではありませんが。

あとは長すぎるので結果の提示は省略しますが、GpuTestではおおむねRadeon RX 6500XTが高速で、GL-vs-VKではおおむねGeForce GTX 1650が高速でした。

OpenCLの結果はありません。エラーとなって実行できませんでした。clinfoコマンドを実行すると、次のように表示されます。

fatal error: cannot open file '/usr/local//usr/lib/clc/gfx1030-amdgcn-mesa-mesa3d.bc': No such file or directory

User Guide for AMDGPU Backendを見る限り「gfx1030」は誤りと思われるので(⁠⁠gfx1032」が正解?⁠⁠、このバージョンのROCmでは未対応なのかもしれません。

Radeon Software for Linuxを使用する上での注意点

Radeon Software for Linuxを使用する上での注意点は大きく2点あります。1点は前述のとおり普段の更新では最新バージョンにならず、更新するためには何らかのアクションが必要になります。

もう1点は、新しいカーネルに追随するまで時間がかかるということです。今回の例であれば、20.04 LTSで5.13カーネルが使用できるようになったのは今年1月半ば(筆者の手元では1月19日)のことであり、20.50のリリースは2月16日で、対応までに1か月くらいかかっています[5]⁠。

おすすめ記事

記事・ニュース一覧