Automatic selection of compiler optimizations using program characterization and machine learning

Date
2015
Journal Title
Journal ISSN
Volume Title
Publisher
University of Delaware
Abstract
It has been shown that machine-learning driven optimizations often outperform bundled optimizations or human-constructed heuristics in selecting suitable optimizations for particular classes of applications. In this dissertation, we propose using new modeling and program characterization techniques to mitigate the current issues in selecting the proper compiler optimizations that improve the performance of a given program. First, we propose a new modeling technique, named tournament predictor, that outperforms two state-of-the-art modeling techniques, sequence predictor and speedup predictor. Second, we discuss two novel techniques for characterizing a given program with a prediction model. One is a graph-based program characterization that uses a graph-based program representation and another is a pattern-based program characterization, which allows user-level definitions of expressive features that cannot be easily constructed using current state-of-the-art techniques. These novel techniques were evaluated and compared to three previously state-of-the-art program characterization techniques: performance counters, reactions, and source code features. The techniques introduced in this dissertation that automatically select compiler optimizations are not only novel and practical, but also outperform state-of-the-art techniques in prediction capability. Our proposed techniques will assist users in understanding and optimizing applications, ultimately helping them to better take advantage of emerging architectures rather than hand tuning or standard compiler optimizations.
Description
Keywords
Citation