ACPO: AI-Enabled Compiler-Driven Framework

📅 2023-12-15
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Traditional compiler heuristics for critical optimizations—such as loop unrolling and function inlining—exhibit poor generalization and limited adaptability across diverse programs. To address this, we propose the first plug-and-play, AI-driven compilation optimization framework for LLVM. Our framework automatically extracts lightweight, IR-level features from LLVM IR and employs supervised learning models (e.g., XGBoost) to jointly decide multiple optimization passes end-to-end. It integrates an on-the-fly compiler-embedded inference engine and a fully automated training pipeline. Key innovations include dynamic, context-aware scheduling of optimization opportunities, achieving both broad applicability and modular extensibility. Experimental evaluation shows average speedups of 4.5% on Polybench, and performance gains of 0.2%–5.4% over -O3 on complex workloads—including Coral-2 and Graph-500—significantly outperforming state-of-the-art heuristic approaches.
📝 Abstract
The key to performance optimization of a program is to decide correctly when a certain transformation should be applied by a compiler. This is an ideal opportunity to apply machine-learning models to speed up the tuning process; while this realization has been around since the late 90s, only recent advancements in ML enabled a practical application of ML to compilers as an end-to-end framework. This paper presents ACPO: An AI-Enabled Compiler Framework, a novel framework that provides LLVM with simple and comprehensive tools to benefit from employing ML models for different optimization passes. We first showcase the high-level view, class hierarchy, and functionalities of ACPO and subsequently, demonstrate aco{a couple of use cases of ACPO by ML-enabling the Loop Unroll and Function Inlining passes used in LLVM's O3. and finally, describe how ACPO can be leveraged to optimize other passes. Experimental results reveal that the ACPO model for Loop Unroll can gain on average 4%, 3%, 5.4%, and 0.2% compared to LLVM's vanilla O3 optimization when deployed on Polybench, Coral-2, CoreMark, and Graph-500, respectively. Furthermore, by including both Function Inlining and Loop Unroll models, ACPO can provide a combined speedup of 4.5% on Polybench and 2.4% on Cbench when compared with LLVM's O3, respectively.
Problem

Research questions and friction points this paper is trying to address.

Artificial Intelligence
Compiler Optimization
Performance Enhancement
Innovation

Methods, ideas, or system contributions that make the work stand out.

ACPO framework
machine learning
compiler optimization
🔎 Similar Papers
No similar papers found.