google/ml-compiler-opt

Infrastructure for Machine Learning Guided Optimization (MLGO) in LLVM.

何を解決するか

LLVM コンパイラ内の手作業で作られた最適化ヒューリスティクスを、機械学習モデルで置き換えることで、コードのサイズとパフォーマンスに対する最適化の質を向上させます。

動作方法

MLGO は、従来のヒューリスティクスを置き換えるために、機械学習技術を LLVM に統合します。特定のコンパイラタスク向けに、ポリシー勾配(Policy Gradient)などのアルゴリズムを使用してポリシーを学習します。現在のフレームワークの焦点は、2つの主要な最適化に集中しています:サイズ最適化のためのインライン化と、パフォーマンス最適化のためのレジスタ割り当て。

対象ユーザー

手動のヒューリスティクスではなく、機械学習モデルを使って LLVM のコンパイルプロセスを最適化したいコンパイラエンジニアや開発者。

主な特徴

  • サイズ最適化のためのインライン化とパフォーマンス最適化のためのレジスタ割り当てをサポート。
  • ポリシーの学習にポリシー勾配(Policy Gradient)を採用。
  • カスタムモデルを作成するための学習インフラとツールを提供。
  • CMake フラグで直接 LLVM に統合可能な事前学習済みモデルを提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト