Abstract | ||
---|---|---|
Tuning compiler optimizations for rapidly evolving hardware makes porting and extending an optimizing compiler for each new
platform extremely challenging. Iterative optimization is a popular approach to adapting programs to a new architecture automatically
using feedback-directed compilation. However, the large number of evaluations required for each program has prevented iterative
compilation from widespread take-up in production compilers. Machine learning has been proposed to tune optimizations across
programs systematically but is currently limited to a few transformations, long training phases and critically lacks publicly
released, stable tools. Our approach is to develop a modular, extensible, self-tuning optimization infrastructure to automatically
learn the best optimizations across multiple programs and architectures based on the correlation between program features,
run-time behavior and optimizations. In this paper we describe Milepost GCC, the first publicly-available open-source machine
learning-based compiler. It consists of an Interactive Compilation Interface (ICI) and plugins to extract program features
and exchange optimization data with the cTuning.org open public repository. It automatically adapts the internal optimization
heuristic at function-level granularity to improve execution time, code size and compilation time of a new program on a given
architecture. Part of the MILEPOST technology together with low-level ICI-inspired plugin framework is now included in the
mainline GCC. We developed machine learning plugins based on probabilistic and transductive approaches to predict good combinations
of optimizations. Our preliminary experimental results show that it is possible to automatically reduce the execution time
of individual MiBench programs, some by more than a factor of 2, while also improving compilation time and code size. On average
we are able to reduce the execution time of the MiBench benchmark suite by 11% for the ARC reconfigurable processor. We also
present a realistic multi-objective optimization scenario for Berkeley DB library using Milepost GCC and improve execution
time by approximately 17%, while reducing compilation time and code size by 12% and 7% respectively on Intel Xeon processor. |
Year | DOI | Venue |
---|---|---|
2011 | 10.1007/s10766-010-0161-2 | International Journal of Parallel Programming |
Keywords | Field | DocType |
optimizing compiler,multi objective optimization,machine learning,compiler optimization | Computer science,Optimizing compiler,Single Compilation Unit,Artificial intelligence,Xeon,Just-in-time compilation,Computer architecture,Dynamic compilation,Parallel computing,Compiler,Porting,Plug-in,Machine learning | Journal |
Volume | Issue | ISSN |
39 | 3 | 1573-7640 |
Citations | PageRank | References |
76 | 2.91 | 44 |
Authors | ||
17 |
Name | Order | Citations | PageRank |
---|---|---|---|
Grigori Fursin | 1 | 958 | 50.76 |
Yuriy Kashnikov | 2 | 84 | 3.79 |
Abdul Wahid Memon | 3 | 85 | 4.28 |
Zbigniew Chamski | 4 | 123 | 10.61 |
Olivier Temam | 5 | 2474 | 148.79 |
M. Namolaru | 6 | 92 | 4.42 |
Elad Yom-tov | 7 | 782 | 53.97 |
Bilha Mendelson | 8 | 144 | 11.71 |
Ayal Zaks | 9 | 414 | 26.73 |
Eric Courtois | 10 | 76 | 2.91 |
et al. | 11 | 422 | 59.98 |
Phil Barnard | 12 | 122 | 19.18 |
Elton Ashton | 13 | 76 | 2.91 |
Edwin V. Bonilla | 14 | 1008 | 53.32 |
John Thomson | 15 | 505 | 23.11 |
Christopher K. I. Williams | 16 | 6807 | 631.16 |
Michael O’Boyle | 17 | 76 | 2.91 |