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