Valve が AMD GPU 用の新しいシェーダー コンパイラーをオープンしました

バルブカンパニー 提案された Mesa 開発者メーリング リストに新しいシェーダー コンパイラーが追加されました ACO バルカンドライバーRADV用、 位置決め可能 AMD グラフィックス チップ用の OpenGL および Vulkan ドライバー RadeonSI および RADV で使用される AMDGPU シェーダー コンパイラーの代替として。
テストが完了し、機能が最終決定されたら、ACO はメインの Mesa 構成に含めるように提供される予定です。

Valve が提案したコードは、非常に高いコンパイル速度を達成するだけでなく、ゲーム アプリケーション シェーダーに可能な限り最適なコード生成を提供することを目的としています。 Mesa のシェーダ コンパイラは LLVM コンポーネントを使用していますが、これでは望ましいコンパイル速度が得られず、制御フローを完全に制御できず、過去に重大なエラーが発生しました。さらに、LLVM から移行することで、より積極的な不一致分析とレジスタ負荷のより詳細な制御を実装できるようになり、より効率的な実行可能ファイルを生成できるようになります。

ACO は C++ で書かれ、JIT コンパイルを念頭に置いて設計されており、高速反復データ構造を使用して、リンク リストや def-use チェーンなどのポインターベースの構造を回避します。中間コード表現は完全に以下に基づいています。 SSA (静的単一割り当て) を使用し、シェーダに応じてレジスタを正確に事前計算することでレジスタ割り当てを可能にします。

現在、ディスクリート AMD GPU (dGPU VI+) ではピクセル (フラグメント) シェーダーとコンピューティング シェーダーのみがサポートされています。ただし、ACO はすでに、Shadow of the Tomb Raider や Wolfenstein II の複雑なシェーダーを含む、テストされたすべてのゲームのシェーダーを正しく収集しています。テスト用に提案された ACO プロトタイプは、コンパイル速度の点で AMDGPU シェーダー コンパイラーのほぼ 2 倍速く、RADV ドライバーを備えたシステムで実行すると一部のゲームで FPS が向上することが実証されています。

Valve が AMD GPU 用の新しいシェーダー コンパイラーをオープンしました

Valve が AMD GPU 用の新しいシェーダー コンパイラーをオープンしました

出所: オープンネット.ru

コメントを追加します