Improving Energy Efficiency through Compiler Optimizations
Abstract--- Energy efficiency is becoming increasingly important for computation, especially in the context of the current climate crisis. The aim of this experiment was to see if the compiler could reduce energy usage without rewriting programs themselves. The experimental setup consisted of compiling programs using the Clang compiler using a set of compiler flags, and then measuring energy usage and execution time on an AMD Ryzen processor. Three experiments were performed: a random exploration of compiler flags, utilization of SIMD, as well as benchmarking real world applications. It was found that the compiler was able to reduce execution time, especially when optimizing for the specific architecture, to a degree that depends on the program being compiled. Faster execution time tended to correlate with reduced energy usage as well, further suggesting that optimizing programs for speed and architecture is the most effective way of decreasing their overall energy usage.