Announcement

Collapse
No announcement yet.

Making A Code Compiler Energy-Aware

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

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

    Comment


    • #3
      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?

      Comment


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

        Comment


        • #5
          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."
          All opinions are my own not those of my employer if you know who they are.

          Comment


          • #6
            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

            Comment


            • #7
              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.

              Comment


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

                Comment


                • #9
                  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.

                  Comment


                  • #10
                    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.

                    Comment

                    Working...
                    X