MILEPOST

Machine Learning for Embedded Programs Optimisation

**Milepost GCC Is Now Available!**


OVERVIEW

The overall objective of this project is to develop compiler technology that can automatically learn how to best optimise programs for re-configurable heterogeneous embedded processors. If successful we will be able to dramatically reduce the time to market of re-configurable systems. Rather than developing a specialised compiler by hand for each configuration, our project will produce optimising compilers automatically. Current handcrafted approaches to compiler development are no longer sustainable. With each generation of re-configurable architecture, the compiler development time increases and the performance improvement achieved decreases. As high performance embedded systems move from application specific ASICs to programmable heterogeneous processors, this problem is becoming critical.

This project explores an emerging alternative approach where we use machine-learning techniques, developed in the artificial intelligence arena, to learn how to generate compilers automatically. Such an approach, if successful, will have a dramatic impact on re-configurable systems. This means that for a fixed amount of design time. We can evaluate many more configurations leading to better and more cost-effective performance. If successful, this will enable Europe to increase its dominance in this critical emerging market.

The MilePost Framework is described in the GCC Summit'08 paper (bib).

BEGINNER'S GUIDE

A beginner's guide to the MilePost project and compiler technology can be found on the Resources page.

FUNDING

MilePost is funded by Information Society Technologies (IST) of the European Union under 6th FWP (Sixth Framework Programme).

TOOLS AND PROJECTS

The MILEPOST Framework transforms GCC into a powerful and interactive machine-learning-enabled research tool suitable for adaptive computing. The development is coordinated by INRIA (contact: Grigori Fursin).

The Collective Tuning Center is a community-driven collaborative portal that enables sharing of optimization knowledge among multiple users and development of common R&D tools with open APIs to automate program optimization, compiler design and architecture tuning using empirical, statistical and machine learning techniques. It includes:
  • Collective Optimization Database to share optimization cases from the community, provide web-services and plugins to analyze collective optimization data and predict good program optimizations based on statistical and machine learning techniques, and improve the quality and reproducibility of the compiler and architecture research.

  • Interactive Compilation Interface to "open up" and transform production compilers into stable interactive research toolsets using event-driven plugin system instead of developing new research compilers from scratch.

  • Universal Adaptation Framework to enable run-time adaptation and optimization of statically-compiled programs for heterogeneous multi-core architectures.

Two cTuning mailing lists are available: [Collaborative development and discussions], [Announcements]