Identifying Compiler Options to Minimize Energy Consumption for Embedded Platforms

Thispaperpresentsananalysisoftheenergyconsumptionofanextensivenumberoftheoptimizations a modern compiler can perform. Using GCC as a test case, we evaluate a set of 10 carefully selected benchmarksfor5differentembeddedplatforms.Afractionalfactorialdesignisusedtosystematically explore the large optimization space (2 82 possible combinations), while still accurately determining the effects of optimizations and optimization combinations. Hardware power measurements on each platform are taken to ensure all architectural effects on the energy consumption are captured. We show that fractional factorial design can find more optimal combinations than relying on built-in compilersettings.Weexploretherelationshipbetweenrun-timeandenergyconsumption,andidentify scenarios where they are and are not correlated. A further conclusion of this study is the structure of the benchmark has a larger effect than the hardware architecture on whether the optimization will be effective, and that no single optimization is universally beneficial for execution time or energy consumption.

[1]  Holger Blume,et al.  Hybrid functional- and instruction-level power modeling for embedded and heterogeneous processor architectures , 2007, J. Syst. Archit..

[2]  C. Q. Lee,et al.  The Computer Journal , 1958, Nature.

[3]  Mahmut T. Kandemir,et al.  The design and use of simplePower: a cycle-accurate energy estimation tool , 2000, Proceedings 37th Design Automation Conference.

[4]  Krishna V. Palem,et al.  The emerging power crisis in embedded processors: what can a poor compiler do? , 2001, CASES '01.

[5]  Jarmo Takala,et al.  Energy consumption reduction by automatic selection of compiler options , 2009, 2009 International Symposium on Signals, Circuits and Systems.

[6]  Michael F. P. O'Boyle,et al.  Milepost GCC: Machine Learning Enabled Self-tuning Compiler , 2011, International Journal of Parallel Programming.

[7]  Rudolf Eigenmann,et al.  Fast and effective orchestration of compiler optimizations for automatic performance tuning , 2006, International Symposium on Code Generation and Optimization (CGO'06).

[8]  Peter Marwedel,et al.  Assigning program and data objects to scratchpad for energy reduction , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[9]  Michael F. P. O'Boyle,et al.  A Feasibility Study in Iterative Compilation , 1999, ISHPC.

[10]  Gary S. Tyson,et al.  Evaluating Heuristic Optimization Phase Order Search Algorithms , 2007, International Symposium on Code Generation and Optimization (CGO'07).

[11]  Simon J. Hollis,et al.  BEEBS: Open Benchmarks for Energy Measurements on Embedded Platforms , 2013, ArXiv.

[12]  Radu Marculescu,et al.  Exploiting Emergence in On-Chip Interconnects , 2014, IEEE Transactions on Computers.

[13]  Andrew Wolfe,et al.  Compilation techniques for low energy: an overview , 1994, Proceedings of 1994 IEEE Symposium on Low Power Electronics.

[14]  Jan Gustafsson,et al.  The Mälardalen WCET Benchmarks: Past, Present And Future , 2010, WCET.

[15]  Gernot Heiser,et al.  An Analysis of Power Consumption in a Smartphone , 2010, USENIX Annual Technical Conference.

[16]  Bongjae Kim,et al.  An Efficient Function Inlining Scheme for Resource-Constrained Embedded Systems , 2012, J. Inf. Sci. Eng..

[17]  Peter M. W. Knijnenburg,et al.  Automatic selection of compiler options using non-parametric inferential statistics , 2005, 14th International Conference on Parallel Architectures and Compilation Techniques (PACT'05).

[18]  Margaret Martonosi,et al.  Wattch: a framework for architectural-level power analysis and optimizations , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[19]  David A. Patterson,et al.  Computer Architecture - A Quantitative Approach, 5th Edition , 1996 .

[20]  Henk Corporaal,et al.  Iterative compilation for energy reduction , 2005, J. Embed. Comput..

[21]  J. S. Hunter,et al.  Statistics for experimenters : an introduction to design, data analysis, and model building , 1979 .

[22]  Yun Cao,et al.  A system-level energy minimization approach using datapath width optimization , 2001, ISLPED '01.

[23]  Peter Marwedel,et al.  An Accurate and Fine Grain Instruction-Level Energy Model Supporting Software Optimizations , 2007 .

[24]  Lothar Thiele,et al.  Approximating Pareto optimal compiler optimization sequences—a trade‐off between WCET, ACET and code size , 2011, Softw. Pract. Exp..

[25]  Babak Falsafi,et al.  Scale-out processors , 2012, 2012 39th Annual International Symposium on Computer Architecture (ISCA).

[26]  Miodrag Potkonjak,et al.  Function-level power estimation methodology for microprocessors , 2000, DAC.

[27]  Joseph Yiu,et al.  The definitive guide to the ARM Cortex-M3 , 2007 .

[28]  Chen Ding,et al.  The energy impact of aggressive loop fusion , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[29]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[30]  Markus Rupp,et al.  Compiler-based optimizations impact on embedded software power consumption , 2009, 2009 Joint IEEE North-East Workshop on Circuits and Systems and TAISA Conference.

[31]  Markus Rupp,et al.  Code transformations and SIMD impact on embedded software energy/power consumption , 2009, 2009 International Conference on Computer Engineering & Systems.

[32]  Dean M. Tullsen,et al.  The effect of compiler optimizations on Pentium 4 power consumption , 2003, Seventh Workshop on Interaction Between Compilers and Computer Architectures, 2003. INTERACT-7 2003. Proceedings..

[33]  Anil Seth,et al.  Algorithms for energy optimization using processor instructions , 2001, CASES '01.

[34]  L. Almagor,et al.  Finding effective compilation sequences , 2004, LCTES '04.

[35]  Lizy K. John,et al.  Is Compiling for Performance — Compiling for Power? , 2001 .

[36]  Chi-Kuang Chang,et al.  Automatic selection of GCC optimization options using a gene weighted genetic algorithm , 2008, 2008 13th Asia-Pacific Computer Systems Architecture Conference.

[37]  Narayanan Vijaykrishnan,et al.  Instruction scheduling based on energy and performance constraints , 2000, Proceedings IEEE Computer Society Workshop on VLSI 2000. System Design for a System-on-Chip Era.

[38]  Jośe L. Ayala Improving Register File Banking with a Power-Aware Unroller , 2004 .

[39]  Gerard J. M. Smit,et al.  A mathematical approach towards hardware design , 2010, Dynamically Reconfigurable Architectures.

[40]  Peter M. W. Knijnenburg,et al.  Optimizing general purpose compiler optimization , 2005, CF '05.

[41]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .