On 15.04.2013 20:21, Tobias Burnus wrote:
Ghassan Shobaki wrote:
We are currently working on a research
project on instruction scheduling for low power (experimenting with
different algorithms for minimizing switching power) and would like to
find out if GCC already has such a scheduler and how it can be enabled,
so that we can experiment with it.

Your project sounds similar to the following project:
http://gcc.gnu.org/ml/gcc/2013-03/msg00259.html ("Identifying Compiler
Options to Minimise Energy Consumption for Embedded Platforms").

We also did similar research in the past, mainly investigating how compiler feedback (via instrumentation and profiling) can assist dynamic voltage scaling in the OS (we had fully offline DVS as well as the patches to the Linux scheduler), but we also did some experiments with controlling bit-switching in the scheduler and some other work.

You can find the relevant papers with some preliminary DVS work and bit-switching experiments at http://www.doc.ic.ac.uk/~phjk/GROW09/papers/06-PowerBelevantsev.pdf and with more DVS research and experiments from GROW 2010 at http://gcc.gnu.org/wiki/GROW-2010?action=AttachFile&do=get&target=2010-GROW-Proceedings.pdf.

To be honest, I can only repeat the same things I said to James on the 2012 Cauldron -- I don't think you can achieve much of power savings from within the compiler, at least until the hardware design will change. The scheduling freedom in minimizing bit-switching is very limited and this is not going to buy much. Any information that a compiler can produce for you will be about program behavior related to CPU and memory, and no matter how well you use it, again you will not save much power as nowadays CPU will not be the largest power consumer in an embedded system (if you save e.g. 10% CPU power consumption which is 10% of total system consumption, that's only 1%). One can achieve more by turning off a display or a networking device.

But I will be happy to be proven wrong :-) So good luck with the research.

Andrey

Reply via email to