Page 1 of 4 123 ... LastLast
Results 1 to 10 of 31

Thread: Making A Code Compiler Energy-Aware

  1. #1
    Join Date
    Jan 2007
    Posts
    14,615

    Default Making A Code Compiler Energy-Aware

    Phoronix: 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...

    http://www.phoronix.com/vr.php?view=MTM1MzE

  2. #2
    Join Date
    Feb 2012
    Posts
    70

    Default

    Couldnt agree more that "more faster = more energy efficient" on all of todays, and a lot of yesterdays hardware.

  3. #3
    Join Date
    Dec 2010
    Location
    MA, USA
    Posts
    1,265

    Default

    Saying "faster=more energy efficient" is very narrow-minded. That is undoubtedly true, but that's only when you look at a single-instance task. For example, if you have a task running 24/7 that does not ever max out the CPU, optimizing the code for speed might in fact use up more power, because the CPU is going all-out on a task that will never end; in other words, you can't "hurry up" an infinite procedure that is already going as fast as it can. As long as the CPU doesn't get maxed out and as long as the program keeps up with it's task, I'm sure reducing instruction sets needed would help increase power efficiency.

    Overall, I'm sure the end result of this is minor. But, other articles on Phoronix have shown that, for example, updates to GPU drivers can both increase performance and power efficiency on the same hardware. Who says a compiler can't do the same?

  4. #4
    Join Date
    Sep 2010
    Posts
    459

    Default

    I'm afraid that there is not much possible this way.
    There are greater gains to be had from teaching people to program efficiently.

  5. #5
    Join Date
    Aug 2012
    Location
    Pennsylvania, United States
    Posts
    1,877

    Default

    Quote Originally Posted by schmidtbag View Post
    Saying "faster=more energy efficient" is very narrow-minded. That is undoubtedly true, but that's only when you look at a single-instance task. For example, if you have a task running 24/7 that does not ever max out the CPU, optimizing the code for speed might in fact use up more power, because the CPU is going all-out on a task that will never end; in other words, you can't "hurry up" an infinite procedure that is already going as fast as it can. As long as the CPU doesn't get maxed out and as long as the program keeps up with it's task, I'm sure reducing instruction sets needed would help increase power efficiency.

    Overall, I'm sure the end result of this is minor. But, other articles on Phoronix have shown that, for example, updates to GPU drivers can both increase performance and power efficiency on the same hardware. Who says a compiler can't do the same?
    Same thing with games. The game's main logic loop runs forever, forever pegging the CPU. I wish there was a way to tell the CPU (combined with thermal sensors) "Screw the frame rate, never get above xyz degrees in temperature."

  6. #6
    Join Date
    Dec 2011
    Posts
    145

    Default

    Quote Originally Posted by plonoma View Post
    I'm afraid that there is not much possible this way.
    There are greater gains to be had from teaching people to program efficiently.
    Good luck with that...
    Seeing the world move to the cloud and web browsers, I don't really see that happening for client side applications.

    Same thing with games. The game's main logic loop runs forever, forever pegging the CPU. I wish there was a way to tell the CPU (combined with thermal sensors) "Screw the frame rate, never get above xyz degrees in temperature."
    This is the only reason I'm looking for an alternative to xbmc... For now, I'm using an ugly combination of STOP/CONT signals.

    Serafean

  7. #7
    Join Date
    Feb 2008
    Location
    Linuxland
    Posts
    5,061

    Default

    Quote Originally Posted by Serafean View Post
    This is the only reason I'm looking for an alternative to xbmc... For now, I'm using an ugly combination of STOP/CONT signals.
    XBMC has mobile versions, correct? Such crap coding would not stand there. This means it's not a design issue in XBMC and merely bad coding of the linux port -> something you can fix, or pay someone to fix.

  8. #8
    Join Date
    Feb 2008
    Location
    Linuxland
    Posts
    5,061

    Default

    I'm still waiting for -Olinus BTW -O3 that also takes cache size into account.

  9. #9
    Join Date
    Dec 2010
    Location
    MA, USA
    Posts
    1,265

    Default

    Quote Originally Posted by Ericg View Post
    Same thing with games. The game's main logic loop runs forever, forever pegging the CPU. I wish there was a way to tell the CPU (combined with thermal sensors) "Screw the frame rate, never get above xyz degrees in temperature."
    That is a good point, although I suppose the easiest way to do it is to detect it's own frame rate and realize it doesn't need to go beyond the refresh rate of the monitor. Detecting temperatures would be too much of a headache, and besides, some systems run at 70C idle. That could make a game run at 1FPS that could otherwise be beyond 100.

  10. #10
    Join Date
    Jan 2012
    Posts
    61

    Default

    Quote Originally Posted by Ericg View Post
    Same thing with games. The game's main logic loop runs forever, forever pegging the CPU. I wish there was a way to tell the CPU (combined with thermal sensors) "Screw the frame rate, never get above xyz degrees in temperature."
    There is and it is called underclocking. You can tune it to temperature by running something like Prime95 and adjusting the clock until the thermals are in the right place.

    My opinion is that if your hardware is overheating then you didn't put enough cooling on it. It is never the program's fault because it is actually using the available hardware. If you have a six core CPU clocked at 4 GHz there should not be any problem running six computation threads at 100% CPU. If there is, then you need to slow it down to 3.6 GHz or give it a bigger heatsink.

    Always annoys me when I read people complaining about some game making their system shut down. It isn't the complainer's fault, oh no, because it runs World of Warcraft just fine so their system must be perfect. As if WoW was the ultimate game.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •