Coelacanth's Dream

RADV/ACO をデフォルトで有効にする動き、RadeonSIに ACO を バックエンドに用いる計画も

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ユーザーにとってかなりの朗報だ。

参考リンク