Publication | Open Access
MLGO: a Machine Learning Guided Compiler Optimizations Framework
35
Citations
21
References
2021
Year
Artificial IntelligenceEngineeringMachine LearningCompiler TechnologyMachine Learning ToolSoftware EngineeringIndustrial CompilerSoftware AnalysisData ScienceMl TechniquesCompilersParallel ComputingCompiler SupportComputer EngineeringComputer ScienceProgram OptimizationOptimizing CompilerProgram AnalysisPolicy GradientParameter TuningParallel Programming
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1