google/ml-compiler-opt

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

解决的问题

通过用机器学习模型替换 LLVM 编译器中手工编写的优化启发式规则,提升编译器在代码大小和性能方面的优化效果。

工作原理

MLGO 将机器学习技术集成到 LLVM 中,以替代传统的启发式规则。它使用策略梯度等算法来训练特定编译器任务的策略。该框架目前重点关注两项主要优化:面向大小的内联优化和面向性能的寄存器分配优化。

适用人群

希望使用机器学习模型而非手动启发式规则来优化 LLVM 编译过程的编译器工程师和开发者。

主要亮点

  • 支持面向大小的内联优化和面向性能的寄存器分配优化。
  • 使用策略梯度算法训练策略。
  • 提供训练基础设施和工具,用于创建自定义模型。
  • 提供可直接通过 CMake 标志集成到 LLVM 中的预训练模型。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目