Pearl: Automatic Code Optimization Using Deep Reinforcement Learning
Djamel Rassem Lamouri, Iheb Nassim Aouadj, Smail Kourta, Riyadh Baghdadi

TL;DR
Pearl is a deep reinforcement learning framework that automates compiler optimizations for general loop nests, achieving significant speedups and generalizing to unseen programs, including polyhedral optimizations.
Contribution
It introduces a novel RL-based system supporting general loop nests and polyhedral optimizations, with a new action space representation and acceleration techniques.
Findings
Achieves a 2.02x speedup over Tiramisu
Achieves a 3.36x speedup over Pluto
Supports optimization of unseen programs and general loop nests
Abstract
Compilers are crucial in optimizing programs and accelerating their execution. However, optimizing programs automatically using compilers is not trivial. Recent work has attempted to use reinforcement learning (RL) to solve this problem. It has limitations though. Current methods either do not support the optimization of general loop nests or can only be used to optimize loop nests seen during training. In this paper, we propose Pearl, a novel framework that uses deep reinforcement learning to automate compiler code optimization. It uses an RL agent to select the sequence of code optimizations a compiler should apply to make the input code run faster. This agent can optimize general loop nests and can generalize to programs unseen during training. To enable the optimization of general loop nests, we propose a novel representation of the action space that allows the RL agent to select on…
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
TopicsHand Gesture Recognition Systems · Speech and dialogue systems · Software Engineering Research
