← Back to context

Comment by PaulKeeble

3 days ago

All the modern CPUs will boost into high clockspeeds and voltage to get work done quicker but at considerably higher power draws per operation. On that side of the equation its clear that it uses more energy. The problem is the entire CPU package is on longer if you don't do that and this costs power too and so its a trade off between the two. Generally we consider there isn't much difference between them but I don't know about that having seen the insanity that was the 13th and 14th gen Intel's consuming 250W when 120W gets about 95% the performance I think its very likely moving down to power save and avoiding that level of boosting definitely saves small amounts of power.

This is some pretty old analysis, but I remember when smartphones came out and people were thinking about throttling their applications to lower power consumption the general advice was to just "race to idle".

The consensus thus was that spending more time in lower power states (where you use ~0W) was much more efficient than spending a longer amount of time in the CPU sweetspot, but with all sort of peripherals online that you didn't need anyway.

I remember when Google made a big deal out of "bundling" idle CPU and network requests, since bursting them out was more efficient than having the radio and CPU trotting along at low bandwidth.

  • However there are two factors that might make "race to idle" more valid on phones than on most other platforms:

    Smartphone chips are designed to much stricter thermal and power limits. There is only so much power you can get out of the tiny battery, and only so much heat you can get rid of without making the phone uncomfortably hot. Even in a burst that puts a limit on the wastefulness. Desktop CPUs are very different: If you can get 10% more performance while doubling power draw, people will just buy bigger coolers and bigger power supplies to go along with the CPU. Notebook CPUs are somewhere in the middle: limited, but with much better cooling and much more powerful batteries than phones.

    The other thing is the operating system: "race to idle" makes sense in phones because the OS will actually put the CPU into sleep states if there's nothing to do, and puts active effort into not waking the CPU up unnecessarily and cramming work into the time slots when the CPU is active anyways. Desktop operating systems just don't do that to the same degree. You might race to idle, but the rest of the system will then just waste power with background work once it's idle.

    • The thing is all these phones are also coming with 2 or 3 different classes of CPUs in order to save power, those slower cores must be achieving much better Watts per Op otherwise they wouldn't bother and be using all that die space for the faster cores. Clearly they are not doing race to idle in most mobile phones either at this point given they have been using a big/little strategy for over a decade.

      What has happened is they realised waking up CPUs to do individual tasks was inefficient and stopped CPUs sleeping so they batched work together but that is basically the overhead of going in and out of sleeping which presumably does waste a bunch of power. This also explains why so many high end phones now have 1 ultra slow core that deals with the background stuff when the phone screen is off, the rest can all just sleep and this low power core can sit there on low clocks sipping minimal power most of the time.

    • > Desktop CPUs are very different: If you can get 10% more performance while doubling power draw, people will just buy bigger coolers and bigger power supplies to go along with the CPU.

      No they won't. OEMs will do that to put the 10% higher number on the box ('OC edition!'), but undervolting / powerlimiting has become increasingly popular. Taking a 2-5% haircut on clock frequency lets you reduce power draw by 20-50% for a 1-3% haircut in performance. Suddenly your CPU and GPU are whisper quiet on aircooling.

  • Race to idle probably makes more sense in the context of smartphones where there’s at least some chance that “idle” means the screen might be turned off.

    For a desktop, the usage… I mean, it is sort of different really. If I’m writing a Tex file for example, slower compiles mean I’ll get… fewer previews. The screen is still on. More previews is vaguely useful, but probably doesn’t substantially speed up the rate at which I write—the main bottleneck is somewhere between my hat and my hands, I think.