Ubuntu日和

【第16回】おっとIntelのdGPUはUbuntu用のドライバがリリースされているだと…… よっしゃNVIDIAもAMDもまとめてDeskMeet X300で動作させるぞ!(Intelと簡易ベンチマーク編)

 前回(第15回)では、NVIDIAとAMDのドライバを使用する方法を紹介した。今回はいよいよIntelのドライバを使用する方法を紹介する。そして少しだけベンチマークの結果も掲載する。

Intel

 前回の記事にもあるとおり、最近IntelはdGPUの提供も行っている。Ubuntu 22.04 LTS用のドライバがリリースされていることを本連載の担当編集氏より知った筆者は、実際に「Intel Arc A380 Challenger ITX 6GB OC」を入手し、DeskMeet X300(いうまでもなくAMDのCPUモデルだ)に接続して検証した。

 Ubuntu 22.10では正しく認識しなかったので、22.04 LTSを再インストールした上でドライバをインストールすることにした。

A380は最新のUbuntu 22.10でも正しく認識しない。次のバージョンである23.04ではインストール時点で認識するようになる見込みだ

 なおドライバはまだリリースされたばかりでこなれていないので、できれば実環境ではなく検証用のSSDないしHDDを用意するほうがいい。本誌の読者であればそのへんをゴソゴソ漁れば使用してないSSDやHDDが出てくるだろうから、さしたる問題ではないだろう。

 ていねいなインストールマニュアルも公開されているので、これを参考にわかりやすく解説しよう。

 まずはUEFI BIOSでResizable BARが有効になっているかどうかを確認する。Intel Arcの場合性能に大きく影響するからだ。DeskMeet X300のマザーボードはデフォルトで有効になっていた。

DeskMeet X300ではデフォルトでCSMが無効である
そしてResizable BARがデフォルトで有効になっていた

 なおResizable BARを有効にするためにはCSMを無効にする必要がある。もしレガシーブートを使用している場合はUbuntuの再インストールが必要となる。このあたりも検証用のSSDやHDDの用意をおすすめする理由だ。

 Resizable BARが有効になっていることを確認したら、パッケージのリポジトリ情報を追加する。このあたりは端末を起動して淡々とコピー&ペーストするのが簡単だ。

$ wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
$ echo 'deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu jammy arc' | sudo tee  /etc/apt/sources.list.d/intel.gpu.jammy.list
$ sudo apt update && sudo apt upgrade

 続けてカーネルのインストールを行う。22.04 LTSのカーネルのバージョンは5.15だが、このドライバでは5.17が必要となる。次のコマンドを実行しよう。

$ sudo apt install -y linux-oem-22.04

 カーネルのバージョンに「oem」とついているが、これはUbuntuのサポート企業であるCanonicalが用意しているUbuntuのプリインストールPC用カーネルだ。インストールマニュアルでは5.17.0-1019-oemの使用を推奨しているが、上記の方法でインストールすると自動的にバージョンが上がってき、本稿の掲載時点では5.17.0-1021-oemがインストールされるが特に問題なく動作することを確認している。

 ここで一旦再起動する。コマンドから行なう場合は次のコマンドを実行するが、普通にメニューから再起動してもいい。

$ sudo reboot

 再ログイン後、実際にパッケージをインストールする。端末を起動して次のコマンドを実行しよう。確実にコピー&ペーストするのがコツだ。

$ sudo apt install gawk
$ sudo apt install -y intel-platform-vsec-dkms intel-platform-cse-dkms
$ sudo apt install -y intel-i915-dkms intel-fw-gpu
$ sudo apt install -y intel-opencl-icd intel-level-zero-gpu level-zero  intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all

 この段階でさらに再起動する。

 再ログイン後、端末を起動してグループの追加をする。

$ sudo gpasswd -a ${USER} render
$ newgrp render

 インストールはこれで完了だ。マニュアルでは動作確認方法も掲載されているが、ここでは省略する。

AMDのCPUとIntelのGPUの夢の共演が実現した

簡単なベンチマーク

 筆者の手元にある機材で簡易的なベンチマークを行なった。

 ベンチマークソフトはPhoronix Test Suiteだ。おそらく聞いたことがないだろうが、オープンソースでマルチプラットフォームなベンチマークソフトだ。バージョンは10.8.4だった。

 OSはもちろんUbuntu 22.04 LTSである。ただしIntelのみカーネルのバージョンは異なる。

 ビデオカードを除いたハードウェアは次のとおりだ。

機材型番
CPURyzen 7 3700X
CPUクーラーSCYTHE 手裏剣2
メモリーCrucial CT2K32G4DFD832A
SSDWestern Digital WDS100T2B0C
ベアボーンASRock DeskMeet X300/B/BB/BOX/JP

 ビデオカードは次の3つだ。

 本来はRD-RX6500XT-E4GB/SFを使用したかったのだが、筆者の力量ではDeskMeet X300で動作させることができなかった。

 ドライバは、NVIDIAに関してはプロプライエタリなドライバ、Intelに関してはインストールしたドライバとした。AMDに関しては、22.04 LTSのドライバと、Radeon Software for Linuxにした。すなわち合計4回行なっている。

 今回は諸事情により新しいAPIであるVulkanと、GPGPU代表としてOpenCLのテストを行なった。Vulkanが動作しているかどうかは「vulkan-tools」パッケージに含まれている「vulkaninfo」コマンドで確認できる。またOpenCLが動作しているかどうかは「clinfo」パッケージに含まれている「clinfo」コマンドで確認できる。

 22.04 LTSにはVulkanとOpenCLに必要なパッケージは含まれていないため、「mesa-vulkan-drivers」と「mesa-opencl-icd」パッケージをインストールする。なおNVIDIAのプロプライエタリなドライバにはVulkanとOpenCLも(もちろんCUDAも)含まれている。Radeon Software for Linuxに関してはオプションでVulkanとOpenCLの動作に必要なパッケージを指定している。Intelのドライバは先ほど実行したコマンドラインをよく見てみると必要なパッケージが含まれている。

 では結果を見ていこう。まずはVulkanからだ。

 RealSR ncnn Vulkanで解像度を4倍にし、TAA(Temporal Anti-Aliasing)の有無で結果を表示している。なおRadeon RX 6600 XTの#1がデフォルトのドライバ、#2がRadeon Software for Linuxだ。

RealSR ncnn VulkanのTAAなし
RealSR ncnn VulkanのTAAあり

 GPUのアーキテクチャと性能を考えると、Radeon RX 6600 XTがダントツで速いのは当然だ。それにしてもA380は遅すぎる。3年も前のTuringアーキテクチャより遅れを取るとはにわかには信じがたい。Intelが新しいAPIであるVulkanの性能には自信がある旨の発言があること、また同じビデオカードを使用した他社のWebサイトに掲載された結果を見てもここまで遅いことにはなってないところから、ドライバがGPUの性能を引き出せていないと考えるが自然だろう。不審に思いvulkaninfoコマンドで確認してみたが、A380の結果で間違いないはずだ。

 続いてOpenCLだ。こちらはdarktableを使用してる。身も蓋もない表現をするとRAW現像ソフトで、某明るいお部屋的な何かを連想させるネーミングである。

 4つのテストを行ない、最も差がなかったものと最も差がついたものを掲載する。

darktableの最も差がついたもの
darktableの最も差がつかなかったもの

 見てのとおりGeForce GTX 1650は圧倒的で、NVIDIAのCUDAは速いがOpenCLも速い。またIntelも充分な速度といえる。GPUの性能差を考えると、むしろRadeon RX 6600 XTの一人負けだ。ただしRadeon用のOpenCL実行環境はほかにもいくつかの実装があり(例えば前出のROCmもそうだ)、ほかの実装だとまた違った結果になる可能性はある。

終わりに

 本稿の趣旨はあくまでGPU大手3社のドライバのインストール方法だったが、期せずしてAMDのCPU+DeskMeet X300+Intel A380をUbuntuで動作させるというヘンタイ的な記事になってしまった。Ubuntuも意外とハードウェアで遊べるということが伝われば幸いである。