[論文レビュー] MLGO: a Machine Learning Guided Compiler Optimizations Framework
MLGOは、LLVMコンパイラに機械学習を組み込み、サイズ削減のインライン最適化ヒューリスティクスを置換する。RLと進化戦略を用い、最大7%のネイティブサイズ削減とターゲット全般への良好な一般化を実現する。
Leveraging machine-learning (ML) techniques for compiler optimizations has been widely studied and explored in academia. However, the adoption of ML in general-purpose, industry strength compilers has yet to happen. We propose MLGO, a framework for integrating ML techniques systematically in an industrial compiler -- LLVM. As a case study, we present the details and results of replacing the heuristics-based inlining-for-size optimization in LLVM with machine learned models. To the best of our knowledge, this work is the first full integration of ML in a complex compiler pass in a real-world setting. It is available in the main LLVM repository. We use two different ML algorithms: Policy Gradient and Evolution Strategies, to train the inlining-for-size model, and achieve up to 7\% size reduction, when compared to state of the art LLVM -Oz. The same model, trained on one corpus, generalizes well to a diversity of real-world targets, as well as to the same set of targets after months of active development. This property of the trained models is beneficial to deploy ML techniques in real-world settings.
研究の動機と目的
- 産業規模のコンパイラで、手作業で設計された最適化ヒューリスティクスを機械学習で置換することを動機づける。
- LLVMへの機械学習の完全な統合を、サイズ削減を目的としたインライン化パスの試作を通じて実証する。
- ポリシー最適化のための機械学習トレーニング手法(強化学習と進化戦略)の開発と比較。
- 1つのコーパスで訓練されたモデルが、多様な実世界のターゲットへ一般化し、時間とともに堅牢であることを示す。
提案手法
- インライン化-for-sizeを、呼び出し点に対して逐次的な意思決定プロセスを持つ強化学習問題として定式化する。
- ネイティブサイズ削減を最大化するよう、ポリシーをポリシー勾配法(PPO)と進化戦略を用いて訓練する。
- 状態表現を扱いやすくするため、11個の数値特徴量の縮小された特徴空間を導入する。
- 行動クローンによるウォームスタートで、LLVMの既存のインラインヒューリスティクスを模倣し訓練を加速する。
- 訓練済みのMLポリシーをリリースモードのモデルとしてLLVMに埋め込み、開発モードの実験をサポートする。
実験結果
リサーチクエスチョン
- RQ1実世界のLLVMパイプラインにおいて、MLベースのポリシーは手調整されたLLVMのインライン-for-sizeヒューリスティクスを上回ることができるか?
- RQ21つのコーパスで訓練されたポリシーは、再訓練なしで他のコードベースや同じターゲットの将来の改訂にも一般化するか?
- RQ3コンパイラ文脈でのインラインポリシー訓練における、強化学習と進化戦略のトレードオフは何か?
主な発見
- MLポリシーは、パイロットのインライン-for-size問題において、最新のLLVM Ozと比較して最大7%のサイズ削減を達成した。
- 1つのコーパスで訓練された単一のモデルは、多様な実世界のターゲットや数か月にわたる活発な開発期間にもわたり良く一般化する。
- 2つの学習パラダイムを検討した:強化学習(PPOを用いたポリシー勾配法)と進化戦略、それぞれが異なるトレードオフを持つ。
- 行動クローンによるRLのウォームスタートは、既存のLLVMインラインヒューリスティクスを活用して訓練を加速する。
- このフレームワークはポリシー訓練を本番利用から分離し、決定論的でリリースモードの動作のためにコンパイラに固定ポリシーを埋め込む。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。