MILEPOST | |
Machine Learning for Embedded Programs Optimisation |
A Beginner's Guide To Milepost:
For those of you who have little knowledge about compiler technology, the following FAQs will hopefully help you to understand the idea behind the Milepost project.
Q1. What is the Milepost project aim? The research aim of this project is to develop a compiler approach that can both improve its performance over time and that can automatically learn how best to optimise programs for reconfigurable heterogeneous embedded processors.
The goal is to develop a modular, extensible, self-optimizing compiler that automatically learns the best optimization heuristics based on the behaviour of the platform.
Code translation process
The source (application) code is a computing language like Java, C++ code, etc.
GCC = a very complex piece of code – around 1 million lines of code for translating application code into binary!
The front end of the compiler reads the application (source) code.
The back end translates the code to the format the processor wants. The back end of a compiler has been very well studied. There can be more than one back end in a compiler. The area between the two ends is the area for optimisation. This is the area Milepost is concerned with. It can take about 50 man years to create a compiler
Optimisation box in detail:
The diagram below shows five modules and six translation paths. An optimisation box can contain more than 100 modules.
A SIMD unit is a piece of hardware that does many things.