Ubuntu Weekly Recipe

第524回 Hades Canyon/Kaby Lake GのdGPUを有効化する

この記事を読むのに必要な時間:およそ 10 分

第523回ではハイエンドNUCであるNUC8i7HVK⁠Hades Canyon)にUbuntu 18.04 LTSをインストールして,CPUやSSDの性能を調べました。今回はより新しいドライバーを導入してHades Canyonの特徴とも言うべきdGPUを使ってみます。

AMDのGPUドライバー事情

GPU(Graphics Processing Unit)はコンピューターにおいて,2D/3Dのレンダリングを主目的とした演算装置です。最近はひたすら猫画像かどうかを識別させられたり,終わりのない表計算をさせられたり,仮想通貨を発掘させられたりと「なんでも屋」の様相を呈していますが,基本的にはグラフィックス関連の演算を担います。

さて,デスクトップPCで主に使われているGPUは次の3つのメーカーに大別されます。

  • Intel
  • NVIDIA
  • AMD

もちろん他にもGPUを作っているメーカーはいますし,たとえばスマートフォン向けだと上記以外のGPUのほうが多いです。とは言え一般的なデスクトップPCに載っているGPUとなると,おそらく上記3つのいずれかになるでしょう。

Intel製のGPUはCPUに組み込まれたiGPUとして提供されています。ソフトウェアについてもIntel Graphics for Linuxを始めとしてIntel自身が昔から積極的にLinuxカーネルやグラフィックススタックにコミットしてもいるのです。よって一般的なLinuxディストリビューションならたいていの場合,特に何もせずとも3Dアクセラレーションも含めて「きちんと動作する」可能性が高く,安心して利用できます。新製品がリリースされた時点で,Linuxでもそれなりに使えるようになっていることもメリットのひとつです。

それに対してNVIDIAは,LinuxをはじめとするFLOSSへのコミットに消極的です。NVIDA製GPU向けドライバーとしてコミュニティが開発しているnouveauに対しては,ある程度のヘルプは行っているものの直接的な関与は控えているように見えます※1)⁠第454回でも紹介しているように,NVIDIA製のGPUを本格的に使うならまずはプロプライエタリなドライバーをインストールすることになるでしょう。

※1
なぜかTegraだけは例外です。

ここ数年で一気に状況が変わったのがAMDです。元々はAMDもNVIDIAと同じように,コミュニティが開発しているradeonドライバーとAMDが提供しているプロプライエタリなCatalyst(fglrx)ドライバーの2つが並立している状況でした。しかしながらGCNアーキテクチャーになって以降は,AMD自身がradeonドライバーベースの新しいグラフィックスドライバーであるAMDGPUを開発・提供することになります※2)⁠特にカーネルドライバーと一部のユーザーランドドライバーについてはFLOSSとして提供されているため,Intelと同様に「Ubuntuをインストールしたらそのまま動く」状況になったのです。

※2
AMDGPUと旧ドライバーとの関係はXDC2015でのAMDの発表資料PDFが参考になるでしょう。

ここまでをまとめると,⁠デスクトップLinux」においては,それぞれのGPUは次のように特徴づけられるでしょう。

  • Intel: グラフィックスの性能を求めないのであればこれを選んでおけばまず間違いない。明示的に選ばなくてもIntel製のCPUを採用していれば,だいたいのPCについてくるはず。
  • NVIDIA: 機械学習などのGPGPU用途においてCUDAや各種ライブラリといったNVDIA固有の機能が必要になる場合に選ぶ。
  • AMD: ゲームやOpenCLなど,IntelではGPU性能が物足りない場合の選択肢。

もちろん最近はどんなデバイスも「ひと手間かければそれなりに動く」ことのほうが多いので,結局のところ「好きなものを選べばいい」になってはしまうのですが。

AMDGPUとAMDGPU-PRO

AMDGPUには主に2種類のインストール方法が存在します。

  1. Ubuntuのパッケージリポジトリからインストールする方法(AMDGPU)
  2. AMDのサイトからAMDGPU-PROをインストールする方法

利用しているUbuntuのバージョンとGPUがリリースされた時期にも依存しますが,基本的には1.の方法で問題ありません。何もしなくても最初からインストールされているはずです。2.を選ぶ必要が出てくるのは主に次のようなケースに該当する場合です。

  • Ubuntuのカーネルバージョンが古く,使っているGPUをサポートしていない
  • Ubuntuのユーザーランド(Mesaなど)が古く,使っているGPUをサポートしていない
  • ワークステーション向けのAMD FireProを使用したい

最初の2つについては第278回でも紹介しているHardWareEnablement(HWE)スタックで解決できる可能性があります。5年間のサポート期間を設けているLTSの場合,リリース前後からサポート期間中に発売されたデバイスには対応できません。そこで,より新しいリリースのカーネルとグラフィックススタックを直近のLTSにも提供することで,新しいハードウェアのLTSにおけるサポートを充実するための措置がHWEです。Ubuntu 18.04 LTSについても,今後18.10,19.04とリリースされるごとに新しいリリースのカーネルとグラフィックススタックを18.04でも利用できるようになる見込みです。

残念ながら18.04はまだリリースされたばかりなので,HWEスタックが存在しません。しかしながらLinuxカーネルは18.04で採用している4.15より新しい4.17がリリースされています。また3DグラフィックスライブラリーであるMesaもまた,18.04で採用されている18.0より新しい18.1がリリースされています。これらのリリースに加えられた変更点については,AMDGPU-PROに取り込まれている可能性があります。よってAMDGPU-PROを導入することで,比較的新しいデバイスについてもきちんと動作する可能性があるのです。

AMDGPU-PROの導入方法については第471回を参照してください。AMDGPU-PROはバイナリパッケージのみの提供となっていますが,カーネル側のドライバーについてはDKMSとして提供されています。つまりカーネルのソースコードの内容は確認可能です。また,Vega M向けのファームウェアは含まれていないようです※3)⁠

※3
最近のデバイスはドライバーとは別に「ファームウェア」と呼ばれるバイナリデータを要求することがあります。Ubuntuの場合はlinux-firmwareパッケージが/lib/firmwareディレクトリにインストールします。たとえばAMDGPUなら/lib/firmware/amdgpu以下のファイルがファームウェアです。

ちなみに18.04向けのAMDGPU-PROは,6月15日にAMDGPU-PRO 18.20としてリリースされたばかりです※4)⁠

※4
この記事を見直している間にリリースされてしまいました。ちなみに5月3日に18.20のEarly Preview版がリリースされていました。Early Preview版は今後のアップデートやアップグレードをサポートする予定はないという位置付けなので,インストール済みの場合は一度削除するか,18.20を再インストールしてください。

さて,本題のHades Canyonに搭載されたRadeon RX Vega Mについてです。Ubuntu 18.04 LTSのKernel 4.15/Mesa 18.0ではサポートしていません。また,AMDGPU-PRO 18.20にも対応コードは入っていないようです。つまりどちらの方法も使えません。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入