Remix.run Logo
delusional 3 days ago

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.

wongarsu 3 days ago | parent | next [-]

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.

PaulKeeble 3 days ago | parent | next [-]

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.

jorvi 3 days ago | parent | prev [-]

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

bee_rider 3 days ago | parent | prev [-]

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.