MLGOPerf: An ML Guided Inliner to Optimize Performance
Amir H. Ashouri, Mostafa Elhoushi, Yuzhe Hua, Xiang Wang, Muhammad, Asif Manzoor, Bryan Chan, Yaoqing Gao

TL;DR
MLGOPerf introduces an ML-guided inliner for LLVM that optimizes performance, achieving up to 2.2% speedup on benchmarks and significantly increasing autotuning opportunities.
Contribution
It presents the first end-to-end framework using ML to optimize performance in LLVM's inliner, employing a secondary model for reward prediction to enhance training efficiency.
Findings
Achieves up to 2.2% speedup on SPEC CPU2006 and Cbench benchmarks.
Provides up to 26% more autotuning opportunities, leading to an additional 3.7% speedup.
Demonstrates practical integration of ML-based optimization in LLVM.
Abstract
For the past 25 years, we have witnessed an extensive application of Machine Learning to the Compiler space; the selection and the phase-ordering problem. However, limited works have been upstreamed into the state-of-the-art compilers, i.e., LLVM, to seamlessly integrate the former into the optimization pipeline of a compiler to be readily deployed by the user. MLGO was among the first of such projects and it only strives to reduce the code size of a binary with an ML-based Inliner using Reinforcement Learning. This paper presents MLGOPerf; the first end-to-end framework capable of optimizing performance using LLVM's ML-Inliner. It employs a secondary ML model to generate rewards used for training a retargeted Reinforcement learning agent, previously used as the primary model by MLGO. It does so by predicting the post-inlining speedup of a function under analysis and it enables a fast…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Advanced Neural Network Applications · Machine Learning and Data Classification
