Making A Code Compiler Energy-Aware
There's a discussion on the LLVM development mailing list about making the compiler become energy-aware to provide an optimization level that would provide the most power-efficient binaries. However, it isn't clear whether this would make sense over simply trying to assemble the fastest binary.
While an "-Oe" optimization level that would optimize for energy-efficient performance over the optimization levels for performance, debugability, or binary size, it wouldn't necessarily entail much and hasn't gained the interest of core upstream compiler developers. For commodity hardware, most compiler research indicates that the most energy-efficient binary is simply the fastest. The faster the work finishes, the quicker the processor can drop to one of its low-power states.
Three years ago there was a -Oe optimization proposal, which ended up getting quickly marked as invalid with LLVM's founder, Chris Lattner, reaffirming "faster = lower power" on mainstream CPUs.
While this older bug report was pointed out in the discussion, some have brought up possibilities of ways to lower memory use in an energy-efficient mode since on some hardware (especially ARM SoCs), RAM use can be a power-hungry operation over simply re-generating the values, among other approaches.
In this discussion, it was brought up that some researchers are working on some energy-efficiency improvements as part of the ENTRA Project. ENTRA is a three-year research project (October 2012 - 2015) funded by the European Union to promote energy-aware software development through "advanced program analysis and modelling of energy consumption" within systems. No fruits of this work have yet to be produced.
Those wishing to read the full mailing list discussion can do so beginning with this message.
While an "-Oe" optimization level that would optimize for energy-efficient performance over the optimization levels for performance, debugability, or binary size, it wouldn't necessarily entail much and hasn't gained the interest of core upstream compiler developers. For commodity hardware, most compiler research indicates that the most energy-efficient binary is simply the fastest. The faster the work finishes, the quicker the processor can drop to one of its low-power states.
Three years ago there was a -Oe optimization proposal, which ended up getting quickly marked as invalid with LLVM's founder, Chris Lattner, reaffirming "faster = lower power" on mainstream CPUs.
While this older bug report was pointed out in the discussion, some have brought up possibilities of ways to lower memory use in an energy-efficient mode since on some hardware (especially ARM SoCs), RAM use can be a power-hungry operation over simply re-generating the values, among other approaches.
In this discussion, it was brought up that some researchers are working on some energy-efficiency improvements as part of the ENTRA Project. ENTRA is a three-year research project (October 2012 - 2015) funded by the European Union to promote energy-aware software development through "advanced program analysis and modelling of energy consumption" within systems. No fruits of this work have yet to be produced.
Those wishing to read the full mailing list discussion can do so beginning with this message.
30 Comments