Identifying Energy Efficient Compiler Optimisations Research Project
This project explored the effectiveness of many compiler options for a range of different architecture and benchmarks. We aimed to evaluate the following hypotheses:
- The time and energy required for a computation are correlated.
- There exists a set of compiler optimisations that gives a lower energy consumption than the predefined optimisation levels.
- It is possible to search the compiler optimisation space in an efficient and systematic manner, to assign each optimisation an overall effectiveness.
- There is no universally good optimisation across multiple benchmarks and platforms.
The full conclusions and analysis can be read in the paper. Selected conclusions are presented below:
- Most of the time, energy consumption is highly correlated to execution time.
- Processors with complex pipelines have a more complex energy profile.
- A fractional factorial design can be used to systematically explore the optimisation space, to a set degree of detail.
- The structure of the benchmarks (code patterns) has a larger effect on the efficacy of the optimisation than the architecture.
Data AvailabilityAll of the outputs of this project are open source. As such they are available for download:
- Preprint Paper
- Benchmark source code
- Measurement Framework
- Result data (warning: large files)