COLO

COMPILERS THAT LEARN TO OPTIMIZE

Compilers that Learn to Optimize are the web pages of the Edinburgh COLO project - a collaborative work between the Institute for Adaptive and Neural Computation (ANC) and the Institute for Computer Systems Architecture (ICSA), School of Informatics.

The Edinburgh Machine Learning Group and the Compiler and Architecture Design Group have jointly started an ambitious project with the aim of developing a compiler framework that can automatically learn how to optimize programs. The Goal of constructing a portable compiler that can automatically tune itself to any hardware architecture and can improve its performace over time can be achieved by applying machine learning techniques to compiler optimization.

In general, there are two main areas where learning machinery can be applied to compiler optimization: Global Optimization (GO) and Predictive Modelling (PM). While the former is focused in finding interesting ways of searching the huge optimization space the latter constructs models of program transformations, program code and hardware architecture in order to optimize any user program.

The COLO project will have a wide range of applications. It will allow portability and performance of compilers across platforms, eliminating the human compiler-development bottleneck. It can also be applied to embedded applications, to rapidly shorten the design cycle of embedded systems and enable automatic design exploration of architectural options.

This work is supported under EPSRC grant GR/S71118/01 Compilers that Learn to Optimize.

These pages are maintained
by Edwin Bonilla