はじめに

AMD GPUはFedora標準というかLinuxカーネルドライバーでも十分な性能で動く事が多いと思います。ですが、AMD GPU Proドライバーを有効にするとBlenderやdarktableでOpenCLを使ったレンダリングが出来ます。UbuntuやCentOSではAMDがサポートしていますが、Fedora用はありません。しかし、Fedoraでも有効に出来るので紹介したいと思います。

amd-radeon

注意書き

ここでのAMD GPU Proドライバーの導入はAMD公式でサポートされていないFedoraへのインストール方法です。動作保証外です。またこの記事に書いてあることについて責任はもちません。

対応カードの種類

AMD GPU グラフィックカードの種類については、私の環境ではAMD Ryzen 5 2400G内蔵GPUであるAPU Radeon™ RX Vega 11グラフィックスしか試していません。ドライバーダウンロードからこのドライバーダウンロードサイトに繋がるのはRX 400シリーズまではリンクが貼ってありましたが、あまり古いのは動かないかもしれません。最新のRadeon 6000シリーズではWindowsしかありません。

ダウンロード

AMD Radeon VII Previous Driversを訪れて、ページ中央辺りの【Previous】をクリックし、

【RHEL x86 64-Bit】→【Radeon™ Software for LinuxR Driver for RHEL 8.2 / CentOS 8.2】→【Download*】からダウンロードします。Radeon VII用ですが、Linuxでは共通ドライバなのでこれを使います。最新の20.45ではうまく動作しなかったので、Previousの20.40を使います。ダウンロードするファイル名は【amdgpu-pro-20.40-1147286-rhel-8.2.tar.xz】です。

ダウンロード先を/home/User/driver/だとします。Userは便宜合わせてください。

解凍展開

ファイルマネージャーにより、ダウンロード先を開きます。該当ファイルを右クリックして【ここで展開】をクリック。

リポジトリ

amdgpu proのdnf用リポジトリを/etc/yum.repo.d/amdgpu.repoに書きます。baseurl=の参照先を間違えないように気をつけて。

[amdgpu]
name=AMDGPU Packages
baseurl=file:///home/User/driver/amdgpu-pro-20.40-1147286-rhel-8.2
enabled=1
skip_if_unavailable=1
gpgcheck=0
cost=500
metadata_expire=300

パッケージインストール

xorg-x11-drv-amdgpu削除

xorg-x11-drv-amdgpuを利用している場合は、削除します。

sudo dnf remove xorg-x11-drv-amdgpu

インストール

amdgpu用パッケージをインストールします。以下のコマンドでインストールしてください。\を含めて一行ずつコピーしてください。

POLARISかそれより古いものは

sudo dnf install --enablerepo=amdgpu \
     libdrm-amdgpu libdrm-amdgpu-common \
clinfo-amdgpu-pro \ opencl-amdgpu-pro-comgr amdgpu-pro-core \
opencl-orca-amdgpu-pro-icd \ libopencl-amdgpu-pro

VEGAかそれより新しいものは

sudo dnf install --enablerepo=amdgpu \
libdrm-amdgpu libdrm-amdgpu-common \ clinfo-amdgpu-pro \
opencl-amdgpu-pro-comgr amdgpu-pro-core \ opencl-amdgpu-pro-icd \ libopencl-amdgpu-pro


としてamdgpuコマンドでインストールします。この際以下のようなエラーが出ます。

失敗しました:
  amdgpu-core-20.40-1147286.el8.noarch
エラー: トランザクションが失敗しました

このamdgpu-coreのインストールが失敗しているのが気になりますが、OpenCLには関係ないようなので問題ないみたい。

icdファイルをリネーム

AMD GPU PRoドライバを優先的に読み込むようにmesa.icdをリネームしておきます。

 cd /etc/OpenCL/vendors/
sudo mv mesa.icd mesa.icd.bak

OpenCL有効か確認

clinfo

clinfo -l

AMD GPU Proドライバ有効化前

Platform #0: Clover
 `-- Device #0: AMD RAVEN (DRM 3.40.0, 5.10.13-200.fc33.x86_64, LLVM 11.0.0)

AMD GPU Proドライバ有効化前

Platform #1: AMD Accelerated Parallel Processing
 `-- Device #0: gfx902

Blender

BlenderでOpenCL有効になっているか確認します。【編集】→【プリファレンス】→【システム】で下図のようにOpenCLの枠が有効になっているか確認してみて下さい。

Screenshot from 2021-02-12 16-10-45

まとめ

FedoraでAMD GPU Pro ドライバーをインストールしてOpenCLを有効にする方法を紹介しました。Blenderでゴリゴリレンダリング出来るの気持ちいいですよ!のはずなんですが、Ryzen 5 2400G Radeon™ RX Vega 11グラフィックスでは、CPUでレンダリングして30分ぐらい掛かるものが数分速くなる程度なんですよね… もっと高性能なGPU持ちな方の感想が知りたいなあと思います

また、参考サイトではFolding@homeの計算にもOpenCLが使えるので試して見て下さい。

参考サイト