About

Welcome to MAGEEC — the MAchine Guided Energy Efficient Compiler framework.

MAGEEC is an open source project which combines work on compilation options which save energy with work on machine learning, to create a compiler framework that is capable of generating code that has improved energy efficiency.

Goals

We've set ourselves four goals.

  1. Optimize for energy. Existing compilers optimize either to minimize execution time, or code size. This project is about generating code which when executed will used as little energy as possible.
  2. Use physical measurement of energy usage, not models. One of the problems with past projects has been using models of the amount of energy used, but these are at best accurate only to 10%, whereas individual compiler optimizations can have far smaller effects. But more importantly such models have implicit assumptions about how the processor works on which their models are based, and any compiler using such models would optimize for these assumptions, not for the actual processor.
  3. Be compiler agnostic and initially support both GCC and LLVM. One of the biggest weaknesses of the earlier MILEPOST project was that it became inextricably tied to one particular compiler, GCC, and indeed to a specific release, so making it near impossible to maintain or to be put into general use.
  4. Deliver a working system! This is government funded industrial research, but it is focussed on taking existing knowledge from projects such as MILEPOST and putting it to work in very much a practical way.

For more information see the wiki.

Licensing

All hardware designs, software source code and data sets produced as part of this project will be provided under open licensing.

Our policy is to use reciprocal, a.k.a. "copyleft", licensing to ensure the continued freedom of the work.

Resources

As with many open source projects we have our own wiki, mailing lists and IRC channel, and over the coming months we'll be working to engage with the wider community.