はじめに
AMD GPUはFedora標準というかLinuxカーネルドライバーでも十分な性能で動く事が多いと思います。ですが、AMD GPU Proドライバーを有効にするとBlenderやdarktableでOpenCLを使ったレンダリングが出来ます。UbuntuやCentOSではAMDがサポートしていますが、Fedora用はありません。しかし、Fedoraでも有効に出来るので紹介したいと思います。
注意書き
ここでの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の枠が有効になっているか確認してみて下さい。
まとめ
FedoraでAMD GPU Pro ドライバーをインストールしてOpenCLを有効にする方法を紹介しました。Blenderでゴリゴリレンダリング出来るの気持ちいいですよ!のはずなんですが、Ryzen 5 2400G Radeon™ RX Vega 11グラフィックスでは、CPUでレンダリングして30分ぐらい掛かるものが数分速くなる程度なんですよね… もっと高性能なGPU持ちな方の感想が知りたいなあと思います
また、参考サイトではFolding@homeの計算にもOpenCLが使えるので試して見て下さい。
FedoraをF33→F34などアップグレードする際は、これらのパッケージは一度削除したほうが良いと思います。
コメント
コメント一覧 (12)
けんけん
がしました
Blenderはまだお猿さんしか試してないですが、Blender上でもちゃんとradeon5500xtと表示されたので間違いないと思います。
一応スクショを撮ったのですが、画像を送れないのでお見せできないのが残念です。
けんけん
がしました
いつもコメントありがとうございます。
スザンヌのことですね?一瞬で終わっちゃいますねー。
私のところでは30分ぐらい掛かると記事で言っていた、このリンクのGPUのをダウンロードしてレンダリングさせてみて下さい。(blendファイルが300 MBほどあります。)
https://svn.blender.org/svnroot/bf-blender/trunk/lib/benchmarks/cycles/barbershop_interior/
どれぐらいで終わるか楽しみです。
けんけん
がしました
BlenderのバージョンSnapの最新版も試したけどダメやった。なんでだろ?。
仕方ないのでWindows引っ張り出してやってみたら、かかった時間は25分43秒だったよ。
けんけん
がしました
いつもコメントありがとうございます。
GNOME-Shell落ちるの悲しいですね。
Blender以外も落ちますか?それとWaylandなのとXorgなのか?また、この記事のパッケージを削除して落ちますか?
それと、snap版はコンテナの中なのでOpen CLは効かないですね。
Windowsで私のより5分も早い!!
けんけん
がしました
BlenderはFedora版、本家版、Snap版と試したけど全部落ちゃう。
それで、色々試してみた。
記事のパッケージを削除して、元の状態に戻した。当然、OpenCLは動かないし、Blender上でも認識していない初期状態。
それで同じベンチファイルを回したら、今度は落ちずにPNGファイルを出力出来た。
出来た、それは喜ばしいのだけど、奇妙な事が起きた。
なんと、CPUだけで回したはずなのに、かかった時間は25分20秒、誤差の範囲だと思うけど、Windowsより20秒早く終わっている。
謎が深まるばかり・・・。
けんけん
がしました
いつもコメントありがとうございます。
OpenCL有効にするなら、
opencl-orca-amdgpu-pro-icdインストールせずでハングしなくならないですか?
GPUよりCPUのが速い。GPUがプロプライエタリでないってのもあるだろうけど、6コアが速いってことなのかなー。すごいCPUですね。20秒は誤差だと思います。
けんけん
がしました
時間は25分6秒だけど30秒は誤差範囲なので、似た結果です。
けんけん
がしました
時間は25分6秒です。30秒は誤差範囲なので、変わらない感じですね。
CPUだけでやってるから当然と言えば当然ですけど。
けんけん
がしました
いつもコメントありがとうございます。
OpenCL有効でのレンダリングもハングしないと良いですね♪
けんけん
がしました
CPUだけだとWindowsは27分39秒に落ちてしまいました。
不思議です。
ちなみにメモリーをオーバクロック出来たので、2133Mhzから3600Mhzにしてます。
FedoraのCPUレンダリングだと25分20秒から23分39秒に成って短くなって良かったんですけどね。
けんけん
がしました
いつもコメントありがとうございます。
Windowsだとドライバのお陰でGPUレンダリング早いですねー。
メモリオーバークロック随分効きますね(*´∀`*)
けんけん
がしました