google/ml-compiler-opt

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

解決的問題

透過以機器學習模型取代 LLVM 編譯器中手動撰寫的優化啟發式規則,提升編譯器在程式碼大小與效能方面的優化效果。

工作原理

MLGO 將機器學習技術整合至 LLVM 中,以取代傳統的啟發式規則。它使用策略梯度等演算法,訓練特定編譯器任務的策略。目前框架主要聚焦於兩項主要優化:針對大小的內嵌優化與針對效能的暫存器配置優化。

適用對象

希望使用機器學習模型而非手動啟發式規則來優化 LLVM 編譯流程的編譯器工程師與開發者。

主要亮點

  • 支援針對大小的內嵌優化與針對效能的暫存器配置優化。
  • 使用策略梯度演算法訓練策略。
  • 提供訓練基礎設施與工具,用於建立自訂模型。
  • 提供可直接透過 CMake 標記整合至 LLVM 中的預訓練模型。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案