AMDGPU PRO
関連記事
このページでは、AMD GPU 用のクローズドソースドライバーについて説明します。
プロプライエタリなコンポーネントの用途
AMD は、標準的な配布経路を通じてオープンソースドライバをリリースしています。また、定期的に Radeon Software for Linux スイートもリリースしています。このスイートにはオープンソースなコンポーネントとプロプライエタリなコンポーネントの両方が含まれています。オープンソースなコンポーネントについてはそのスイートから取り出す必要はありません。プロプライエタリなコンポーネントは最新の Ubuntu lts バージョンから再パッキングされます。それらは AUR の amdgpu-pro-installer パッケージベースで配布されています。
AMD の John Bridgman によるコメントでは、AMD がまだクローズドソースドライバをパッケージングしている理由が説明されています:
- 最近では、私達のパッケージングされたドライバは主に以下のようなお客様を想定しています:
- 最新のグラフィックスドライバを自動的にピックアップしない、変動の遅いエンタープライズ/LTS ディストロを使用しているお客様 - 私達はそのようなお客様にオープンソースのオプションとプロプライエタリ/ワークステーションのオプションの両方を提供しています。
- ワークステーションアプリを使用しており、ワークステーション指向のドライバによるさらなるパフォーマンス/認定を必要とするお客様 (とはいえ、Marek 氏は昨年、ワークステーションアプリにおける Mesa のパフォーマンスを向上させるために多くの素晴らしい仕事をこなしてくれました)。
- 3番目に、パッケージングされたオープン/クローズドのドライバ、または最近のディストロの上流ベースのスタックを使うために、すぐに使える OpenCL を探しているお客様。
プロプライエタリなコンポーネントはいくつか存在します: OpenGL、OpenCL、Vulkan、AMF。オープンソースなコンポーネントにはない特定の機能のためにこれらのコンポーネントを使いたい場合があります。
AMDGPU PRO OpenGL はプロプライエタリな、バイナリのユーザランドドライバです。オープンソースの amdgpu カーネルドライバの上で動作します。Radeon Software 18.50 vs Mesa 19 benchmarks の記事によると、OpenGL ゲームの場合、RadeonSI Gallium3D ドライバは プロプライエタリな AMD OpenGL ドライバを圧倒しています。Radeon Pro 以外のグラフィックカードユーザは amdgpu グラフィックスタックを使用することをおすすめします。これは、一部のソフトウェアが必要とする互換レイヤが存在しないため、主に利用されています。
下記の gentoo wiki のリンクを参照してください。
AMDGPU PRO Vulkan - AMF が依存関係としてこれを必要とします。
AMDGPU PRO OpenCL - Mesa OpenCL が完全ではないため、使用されています。Polaris GPU 専用のプロプライエタリなコンポーネントです。それ以降の GPU はオープンな ROCm OpenCL を使用します。
AMDGPU AMF - gpu エンコード/デコードに使用されます。
インストール
プロプライエタリな OpenGL 実装については、amdgpu-pro-installer パッケージベースを使用してください。これには、以下のパッケージすべてが含まれています:
- amdgpu-pro-oglpAUR: プロプライエタリな OpenGL 実装
- lib32-amdgpu-pro-oglpAUR: プロプライエタリな OpenGL 実装の 32 ビットアプリケーションサポート
- vulkan-amdgpu-proAUR: プロプライエタリな Vulkan 実装
- lib32-vulkan-amdgpu-proAUR: プロプライエタリな Vulkan 実装の 32 ビットアプリケーションサポート
- amf-amdgpu-proAUR : Advanced Media Framework 実装
利用可能な OpenCL の実装については GPGPU#AMD/ATI を見てください。
これで OBS を動作させるには、obs-studio-amfAUR を使用してください。
利用法
プロプライエタリな OpenGL を使う
progl を使ってアプリケーションを実行してください。例:
$ progl glmark2
AMDGPU-PRO ドライバを使用しているかどうかを確認する
以下のコマンドを実行してください:
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs
AMD
と出力された場合、オープンソースドライバを使用しています。Advanced Micro Devices, Inc.
と出力された場合、プロプライエタリドライバを使用しています。
または、glmark2 を実行してください。オープンソースドライバを使用している場合、OpenGL Information で以下のように出力されます:
GL_VENDOR: AMD GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1) GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3
しかし、クローズドドライバを使用している場合:
GL_VENDOR: ATI Technologies Inc. GL_RENDERER: Radeon RX 580 Series GL_VERSION: 4.6.14756 Compatibility Profile Context
プロプライエタリな Vulkan を使用する
vk_pro
を使ってアプリケーションを実行してください。例:
$ vk_pro vkmark
さらなる情報は Vulkan#AMD Vulkan Prefixes で選択する を見てください。
Advanced Multimedia Framework を使う
FFmpeg#AMD AMF を見てください。
トラブルシューティング
Intel + AMD のハイブリッドグラフィックス
Intel GPU と AMD GPU の両方を使用しているユーザは、MESA の実装の違いにより、プロプライエタリの AMDGPU Pro Workstation Driver が期待通りに動作しないかもしれません。
症状としては次のようなものです: マシンを起動すると、ブラックスクリーンになり、マウスカーソルのみが通常通り動く。
残念ながら、Reverse PRIME は解決策にはなりません。開発者の返答を見てください。
パッケージのアンインストール
問題が発生した場合 (例えば、ブラックスクリーンによりシステムにログインできない場合)、AMDGPU PRO 関連のすべてのパッケージをアンインストールすることにより、もとに戻せます。
(Ctrl+Alt+F2
を押すなどして) 仮想コンソールに切り替えて、システムにログインしたあとで次のコマンドを実行してください:
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")
そして、再起動してください。
Southern Islands (SI) または Sea Islands (CIK) GPU
Southern Islands (SI) または Sea Islands (CIK) GPU を使用している場合、clinfo
を実行すると以下のようなメッセージが表示されます:
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.
この場合、radeon ドライバではなく amdgpu ドライバを使用していることを確認してください。
現在どのドライバが使用されているかを確認してください:
$ lspci -k
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265 Kernel driver in use: radeon Kernel modules: radeon, amdgpu
さらなる情報については AMDGPU#Southern Islands (SI) と Sea Islands (CIK) のサポートを有効化 を見てください。
ファームウェアと AMD ドライバ
AMD ドライバとファームウェア (特に最近のファームウェア) は、同期が取れずに、問題が発生したり全く機能しなかったりする可能性があります。
Journal で VNC
と検索することで確認できます:
system VCN FW Encode interface version=1.9, expected version=1.8
ファームウェアをダウングレードすることで、この問題は解決するようです。