MILEPOST GCC
MILEPOST GCC is free community-driven open-source adaptive self-tuning compiler that combines stable production-quality GCC, Interactive Compilation Interface and machine learning plugins to adapt to any given architecture and program automatically and predict profitable optimizations to improve program execution time, code size and compilation time.,[1][2] It is currently used and supported by academia and industry[3] and is intended to open up research opportunities to automate compiler and architecture design and optimization.[4]
Developer(s) | cTuning foundation / MILEPOST consortium |
---|---|
Initial release | 2009 |
Stable release | 4.4.x
/ May 21, 2010 |
Repository | |
Operating system | Cross-platform |
Type | Compiler |
License | GNU General Public License (version 3 or later) |
Website | GitHub, online API, cTuning.org/ctuning-cc, cTuning.org/milepost-gcc |
MILEPOST GCC is currently a part of the community-driven Collective Tuning Initiative (cTuning) to enable self-tuning computing systems based on collaborative open-source R&D infrastructure with unified interfaces and improve the quality and reproducibility of the research on code and architecture optimization. MILEPOST GCC is connected to Collective Optimization Database to collect and reuse profitable optimization cases from the community and predict good optimizations based on statistical analysis of optimization data.
In January 2018, the cTuning foundation and the Raspberry Pi Foundation published an interactive and reproducible article featuring MILEPOST GCC and Collective Knowledge framework "for collaborative research into multi-objective autotuning and machine learning techniques[5].
Versions
- MILEPOST GCC 4.4.x ICI 2.0 - released in May, 2010.
- MILEPOST GCC 4.4.0 - released in May, 2009.
- MILEPOST GCC 4.2.2 - released in July, 2008.
Current developments:
- GitHub development website - this version is implemented as a Collective Knowledge package and uses optimization results from the open Collective Knowledge repository to train predictive models.
- Online MILEPOST demo to predict GCC or LLVM compiler flags using machine learning and MILEPOST features.
Past developments:
- Collaborative development website
- Google Summer of Code'2009 extensions to enable fine-grain program optimizations including polyhedral transformations, function level run-time adaptation and collective optimization
- Development mailing list
References
- Grigori Fursin, Yuriy Kashnikov, Abdul Wahid Memon, Zbigniew Chamski, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Bilha Mendelson, Ayal Zaks, Eric Courtois, Francois Bodin, Phil Barnard, Elton Ashton, Edwin Bonilla, John Thomson, Chris Williams, Michael O'Boyle. Milepost gcc: Machine learning enabled self-tuning compiler International journal of parallel programming, Volume 39, Issue 3, pp. 296-327, June 2011 (link)
- Grigori Fursin, Cupertino Miranda, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Ayal Zaks, Bilha Mendelson, Phil Barnard, Elton Ashton, Eric Courtois, Francois Bodin, Edwin Bonilla, John Thomson, Hugh Leather, Chris Williams, Michael O'Boyle. MILEPOST GCC: machine learning based research compiler. Proceedings of the GCC Developers' Summit, Ottawa, Canada, June 2008 (link)
- IBM Releases Open Source Machine Learning Compiler, Slashdot, July 2009 (link)
- Rethinking code optimization for mobile and multicore, InfoWorld, July 2009 (link)
- Grigori Fursin, Anton Lokhmotov, Dmitry Savenko, Eben Upton. A Collective Knowledge workflow for collaborative research into multi-objective autotuning and machine learning techniques, arXiv:1801.08024, January 2018 (arXiv link, interactive report with reproducible experiments)