Ubuntu 20.10とRadeon RX 6000 シリーズGPUの組み合わせの不遇
Ubuntu 20.10とRadeon RX 6000 シリーズ(RX 6800, RX6800XT, RX6900XT)は数日違いでリリースされた(10/22と10/28)。
AMDはオープンソースへのコントリビュートを旨としており、Linuxカーネルの上流にはRX 6000シリーズのサポートが入っているっぽい(Linux 5.10以降)
さらにAMDは現行のOSに対応するためにUbuntu 20.04へのDKMSも提供している
Linux 5.8のUbuntu 20.10「俺は?」
一応DKMSとそれに依存する部分以外のドライバは動くので画面描画は可能。多分だけど描画系とGPGPU系のインタフェースが別で描画系はさすがに動かないと困るからそこは動くように作ってるのかな。
ただしGPGPU系の機能は全然だめで、 /dev/kfdとか/dev/driとか/dev/drmがそもそも存在しないしそういったやつに依存するOpenCLとかVulkanとかも入らない
この問題に取り組んだ人がいる。
結論からいうとLinux 5.10に上げるとどうにかなるっぽい。
個人的にはUbuntu 21.04が最低でもLinux 5.10、多分5.11になるらしいので21.04のpreviewを使ってもいいんじゃないかと思ってる。21.04の開発スケジュールは以下。
- 機能確定: 2021-02-25
- UI確定: 2021-03-18
- Ubuntu 21.04 Beta: 2021-04-01
- カーネル確定: 2021-04-08
- リリース候補: 2021-04-15
現時点でbeta未満とはいえ、そんなに不安定ってことはないんじゃないかな。試したことないけど。
注意点はwaylandに移行してるのでX Window System依存のやつがたまに動かないこと。
Ubuntu 20.10のままLinux 5.10を使うにはここから取得することになるらしい。
v5.10.16まで出てる。
機能としては後方互換性はあるはずだから基本動くと思うけどDKMSが他にもあるなら注意が必要。
Linux 5.10に上げたあとのinstructionはAMDのページに書いてある。
Linux 5.11がつい8時間前にリリースされたっぽい
ドライバがちゃんと機能してない現在は音が出ない、スリープから復帰するときに画面が点かない、画面のリフレッシュレートがなんか30Hzになってる、などの現象に直面している。リフレッシュレート以外はAMD GPUに換装する前はちゃんと動いていたので多分ドライバの問題。リフレッシュレートは以前どうだったか覚えてないので不明。
有識者の知見/動いたよ報告お待ちしております(誰でも投稿できます)
Ubuntu 21.04に上げると画面が映らなかったときにwayland由来なのかドライバ由来なのか分からなそうなのでカーネルを5.11に上げる選択をした。
リフレッシュレートは60Hzになった、音も出るようになった。/dev/kfd、/dev/dri、/dev/drm_*は生えた。
スリープからの復帰は画面はつくけど表示が正しくない上にキーボードマウスが正常に動かなくてカーソルの移動だけできる。クリックとキータイプは不能で、事実上スリープから復帰不可。
openclとかvulkanとかはどうやって最小限の確認しましょうね。
まあ、ファームウェアインストールする前に起きてた諸現象が直ったのでよしということで。
- alacrittyの描画が1イベント分遅れることがある問題が解消
- firefoxの描画が荒れることがある問題が解消
- blenderが高速化
- (最新版を自前ビルドした)radeontopにそれっぽい表示がされるように
引き続き21.04試してみた報告やスリープから復帰しない問題の解決報告などはお待ちしております。
いままで動かなかったwgpuのサンプルコードが動いたのでヨシ
$ cargo run --example cube
Finished dev [unoptimized + debuginfo] target(s) in 0.06s
Running `target/debug/examples/cube`
WARNING: radv is not a conformant vulkan implementation, testing use only.
Using AMD RADV SIENNA_CICHLID (ACO) (Vulkan)
blenderのcyclesでレンダリングするときに上手くOpenCLでレンダリングできない問題があった。これは権限の問題でBlenderがGPUにアクセスできてなかったっぽい。Blenderをsudoで起動するか(あまりおすすめしない)、 ユーザを render
グループに入れてrebootすれば解決した。
$ ls -l /dev/kfd
crw-rw---- 1 root render 508, 0 2月 27 16:38 /dev/kfd
$ ls -l /dev/dri
合計 0
drwxr-xr-x 2 root root 80 2月 27 16:38 by-path
crw-rw----+ 1 root video 226, 0 2月 27 16:38 card0
crw-rw----+ 1 root render 226, 128 2月 27 16:38 renderD128
$ sudo usermod -aG render $USER
あんまりよく分かってないけど同様の問題がvideoグループでも発生しそうだしついでにvideoグループにも入れとくといいかも?
videoグループについて。
video: This group can be used locally to give a set of users access to a video device (like the framebuffer, the videocard or a webcam).
基本はWebCamとかだけどGPUでエンコードする場合はGPUも関係しますよ程度かな。まあ、あるに越したことはなさそう。
Linux 5.11.5が出ていたのでアップグレードしたらスリープからの復帰の問題も直った。5.11.3で色々パッチが入ってるっぽいからそこで直ったのかな
close as resolved