MLGO がどのように機能するか知りたいですか? この記事を読むと理解できるようになります

今日のソフトウェア開発の世界では、コードの最適化はパフォーマンスの向上とコード サイズの削減に不可欠です。この点で、インライン化は重要な最適化手法の 1 つとみなされます。一方、MLGO はコンパイル中にインライン/非インラインの決定をインテリジェントに行うことができ、より効率的でコンパクトなコードを提供します。この記事では、MLGO がどのように機能するかを詳しく説明し、このエキサイティングなテクノロジーを完全に理解できるようにします。

3f6805ef78ab291204b0403ebcf5a7ad.jpeg

インライン化は、冗長なコードを削除してコード サイズを削減することを目的とした最適化手法です。コード内で相互に呼び出し合う関数が多数ある場合、コール グラフ (Call graph) と呼ばれる構造が形成されます。インライン化フェーズでは、コンパイラはコール グラフ全体を調べ、特定の決定ルールに従って特定の呼び出し元と呼び出し先のペアをインライン化するかどうかを決定します。以前のインライン化の決定によってコール グラフが変更され、その後の決定と最終結果に影響を与えるため、これは継続的な決定プロセスです。呼び出し元と呼び出し先のペアをインライン化することにより、コンパイラーはより簡潔なコードを生成できるため、コードのサイズが削減されます。

ただし、従来のヒューリスティック手法では、インライン化/非インライン化の決定は通常、いくつかの経験則またはヒューリスティック ルールに基づいています。このアプローチは、特に複雑なコード構造や大規模なソフトウェア パッケージに直面した場合、時間の経過とともに改善することがますます困難になってきています。この問題を解決するために、MLGO (Machine Learning Guided Optimization) は、従来のヒューリスティック手法に代わる機械学習モデルを導入します。MLGO は、ポリシー勾配と進化的戦略アルゴリズムを使用した強化学習で意思決定ネットワークをトレーニングし、インライン/非インライン意思決定の提案を提供します。

f57aeefdf57bdf80696df7fd6f7b3318.jpeg

MLGO では、コンパイラは、コール グラフの走査中に関連する特徴を入力として抽出することにより、特定の呼び出し元と呼び出し先のペアをインライン化するかどうかをニューラル ネットワーク モデルに問い合わせます。モデルの提案に従って、コンパイラはコール グラフ全体が走査されるまで、インラインか非インラインかを順番に決定します。このような反復的な意思決定プロセスにより、状態、アクション、報酬のログが収集され、継続的にポリシーが改善され、オンライン強化学習 (オンライン強化学習) の形式でモデルが更新されます。

トレーニング中に、コンパイラーはトレーニングされたポリシーを使用してインライン/非インラインの決定を行い、逐次決定プロセスのログを保持します。これらのログは、ニューラル ネットワーク モデルを更新するためにトレーナーに渡されます。このトレーニング プロセスは、満足のいくモデルが得られるまで繰り返されます。

d236ada0c068448c83034f258359ee32.jpeg

トレーニングが完了すると、トレーニングされたポリシーがコンパイラーに組み込まれ、実際のコンパイル プロセス中にインライン/非インラインの決定が行われます。トレーニング フェーズとは異なり、このポリシーではログが生成されなくなります。TensorFlow モデルを XLA AOT (Ahead-of-Time Compilation) に埋め込むことにより、モデルを実行可能コードに変換し、TensorFlow ランタイムの依存関係や追加の時間とメモリのオーバーヘッドを回避できます。

大規模な社内ソフトウェア パッケージの実験では、MLGO でトレーニングされたインライン ポリシーを他のソフトウェアのコンパイル プロセスで使用するために一般化でき、時間とメモリのオーバーヘッドを 3% ~ 7% 削減できることが示されています。この一般性は、異なるソフトウェア間の比較だけでなく、ソフトウェアとコンパイラの継続的な開発における時間の経過にも当てはまります。3 か月の評価後、同じソフトウェア セット上でモデルのパフォーマンスがわずかに低下するだけでした。

機械学習テクノロジーの継続的な進歩と開発により、MLGO は将来的にコード最適化分野のイノベーションをさらに促進し、より効率的で信頼性の高いソフトウェアを提供することが期待されます。

おすすめ

転載: blog.csdn.net/Fsafn/article/details/131679567