Google の Propeller は、大規模なコードベース向けのプロファイルに基づく再リンク オプティマイザーです。 Propeller は LLVM 上に構築されており、プログラム全体の最適化が可能です。 Google のコンパイラ エンジニアは現在、Propeller ツールを上流の LLVM コードベースに導入したいと考えています。
Google の Propeller は、大規模なバイナリ/アプリケーションのパフォーマンスを高速化するために数年間開発されてきました。 Linux カーネル ビルドでも AutoFDO と Propeller を使用して、5 ~ 10% のパフォーマンス向上を実現しました。
Google のコンパイラ チームの Jin Huang 氏は、 LLVM 談話 Propeller ツールを LLVM ソース ツリーにアップストリームするために取り組むことを期待しています。その公開提案から:
「私たちは、Propeller プロファイル変換ツール (仮称 llvm-propeller) を llvm/tools にアップストリームすることを提案します。Propeller は、正確な機能と基本的なブロック レイアウトによってアプリケーションのパフォーマンスを向上させるポストリンク最適化 (PLO) フレームワークです。Clang (-fbasic-block-sections) コンポーネントと LLD (-lto-basic-block-sections) コンポーネントはすでにアップストリームですが、Propeller プロファイルを生成するための重要なツールは外部のままです。 (google/llvm-propeller)。
このツールを統合すると、LLVM ユーザーに、完全で依存関係のない、すぐに使える PLO ソリューションが提供されます。 Propeller は、再リンクベースのアプローチを活用することで、分散ビルド環境およびインクリメンタル ビルド環境向けに設計されたスケーラブルなオプションを提供し、BOLT のようなバイナリ書き換えフレームワークの代替として機能します。
…
現在、Propeller を使用するには、外部リポジトリ (google/llvm-propeller) を含むバラバラのワークフローが必要です。このツールを llvm/tools に移動すると、プロファイルガイド付き最適化 (PGO) インフラの llvm-profgen などの標準ツールと一緒に配布できるようになり、ユーザー エクスペリエンスが大幅に簡素化されます。
このプロファイルに基づく再リンク オプティマイザーをより簡単に活用するためのエクスペリエンスを簡素化するために、アップストリームの LLVM コードベースに Propeller ツールが組み込まれ、これが 2026 年にうまくいくことを願っています。
#Googleパフォーマンス向上のために #Propeller #ツールを #LLVM #にアップストリームしようとしている