Published on Sat Jan 13 2018

A Survey on Compiler Autotuning using Machine Learning

Amir H. Ashouri, William Killian, John Cavazos, Gianluca Palermo, Cristina Silvano

Since the mid-1990s, researchers have been trying to use machine-learning-based approaches to solve a number of different compiler optimization problems. This survey summarizes and classifies the recent advances in using machine learning for the compiler optimization field.

0
0
0
Abstract

Since the mid-1990s, researchers have been trying to use machine-learning based approaches to solve a number of different compiler optimization problems. These techniques primarily enhance the quality of the obtained results and, more importantly, make it feasible to tackle two main compiler optimization problems: optimization selection (choosing which optimizations to apply) and phase-ordering (choosing the order of applying optimizations). The compiler optimization space continues to grow due to the advancement of applications, increasing number of compiler optimizations, and new target architectures. Generic optimization passes in compilers cannot fully leverage newly introduced optimizations and, therefore, cannot keep up with the pace of increasing options. This survey summarizes and classifies the recent advances in using machine learning for the compiler optimization field, particularly on the two major problems of (1) selecting the best optimizations and (2) the phase-ordering of optimizations. The survey highlights the approaches taken so far, the obtained results, the fine-grain classification among different approaches and finally, the influential papers of the field.

Wed May 09 2018
Machine Learning
Machine Learning in Compiler Optimisation
In the last decade, machine learning based compilation has moved from an obscure research niche to a mainstream activity. In this article, we describe the relationship between machine learning and compiler optimisation. We provide a comprehensive survey and provide a road map for the wide variety of different research areas.
0
0
0
Wed Jan 13 2021
Machine Learning
MLGO: a Machine Learning Guided Compiler Optimizations Framework
Leveraging machine-learning (ML) techniques for compiler optimizations has been widely studied and explored in academia. We propose a framework for integrating ML techniques systematically in an industrial-strength compiler -- LLVM. We use two different ML algorithms to train the inlining-for-size model,
2
2
2
Sat Nov 21 2020
Machine Learning
Deep Data Flow Analysis
ProGraML - Program Graphs for Machine Learning - is a portable representation of whole-program semantics for machine learning. ProGraML can be used to benchmark current and future learning techniques for compiler analyses.
0
0
0
Wed May 29 2019
Machine Learning
Categorization of Program Regions for Agile Compilation using Machine Learning and Hardware Support
The problem we address in this paper is that of keeping the compilation times reasonable, and at the same time optimizing the input program to the fullest extent possible. The performance of the produced code will match the performance when all the aggressive optimization passes are applied over the entire input program.
0
0
0
Thu Aug 20 2020
Machine Learning
Static Neural Compiler Optimization via Deep Reinforcement Learning
The phase-ordering problem of modern compilers has received a lot of attention from the research community. Various optimization sequences exposed to the user are manually designed by compiler developers. Our agent learns to outperform the O3 sequence and achieves competitive performance on the validation set.
0
0
0
Wed Feb 24 2021
Machine Learning
Learning to Make Compiler Optimizations More Effective
LoopLearner predicts which way of writing a loop will lead to efficient compiled code. Applying the transformations that our model deems most favorable prior to compilation yields an average speedup of 1.14x. When trying the top-3suggested transformations, the average speed up even increases to 1.29x.
0
0
0