AMD GPU向けのオープンソースVulkanドライバー RADV の新たなシェーダーコンパイラバックエンド、ACO が既存の LLVM に代わり、デフォルトで有効化される動きを見せている。
radv: enable ACO by default (!5445) · Merge Requests · Mesa / mesa · GitLab
ACO については、以前書いた検証記事を参照。
RADV/ACO 検証: waifu2x-ncnn-vulakan の実行が最大3倍近く高速に | Coelacanth’s Dream
GFX9世代(Vegaアーキテクチャ)から対応している FP16/int16 の Packed実行と、その Vulkan拡張機能のソフトウェア対応、1
一部最適化と安定性の向上により、ACO は LLVM同等の機能を備えることになるため、ACO をデフォルトで有効にする目処が付いたということだろう。
その場合、LLVMをバックエンドに使用することはオプション扱いとなり、環境変数を指定する必要がある。
現在の ACO 有効方法がそうであるため、入れ替わる形だ。
ACO により、グラフィクス処理において平均で約1.2倍の性能向上を、2
そして自分が検証した限りでは、コンピュート処理においては約3倍の性能向上を受けられる。3
ACO が性能に加えて機能と安定性を備え、デフォルトで有効化されるというのは素直に喜ばしいことだ。
また、RADV の開発者の1人、Samuel Pitoiset氏は、ACO を AMD GPU向けOpenGLドライバー、RadeonSI に移す計画はあるかという質問に対し、Yes と答えている。4
RADV 同様に、バイナリを生成する前段階に位置する LLVM IR を ACO IR に置き換える形になると思われる。
RadeonSI にも ACO がバックエンドに採用されれば、より多くのアプリケーションにおける処理性能が向上する。
まだいつ頃からその計画が始まるのかもわからないが、Linux + AMD GPUユーザーにとってかなりの朗報だ。
参考リンク
-
WIP: radv/aco: enable FP16 features/extensions on GFX9+ (!5347) · Merge Requests · Mesa / mesa · GitLab ↩︎
-
Radeon Software 20.10 vs. Upstream Linux AMD Radeon OpenGL / Vulkan Performance - Phoronix ↩︎
-
RADV/ACO 検証: waifu2x-ncnn-vulakan の実行が最大3倍近く高速に | Coelacanth’s Dream ↩︎
-
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5445#note_532279 ↩︎