Power aware scheduling may increase performance

entity279

Veteran
Supporter
Was thinking today about current advanced power management techniques that are done on performance CPUs.

CPUs have a preset upper TDP that they are not allow to exceed. To do that under heavy load, they throttle to some extent. This results in the CPU not reaching its turbo frequencies or even going bellow its stock frequency.

What if the CPU can predict that a TDP threshold is going to be exceeded? Or the software scheduler? Then it (or the software) would be able to pick lighter workloads. Thus preventing throttling or enabling even higher turbo states.

Surely there is some performance to be gained here. And surely this can be achieved at one level or another. Dunno if it is worth it.

Regardless if this is done in hardware or software, the predictability of performance will get lower once such a technique is used.

Your thoughts? Any literature that covers this (had only a first and very brief look)?
 
The OS scheduler has no say in how demanding a thread is. It does two things: sets the CPU speed/voltage of cores (as much as is possible, may or may not include individual settings per core, does include turning cores off entirely) and decides what's currently running on each hardware thread. It could choose to give lower run-time to threads that are more demanding but that's a pretty awful policy.

It could run at a lower frequency than architecturally allowed even if it knows the active threads could make use of more CPU time. It could do this pre-emptively, based on some rules, and to some extent this is done. But ultimately throttling after the fact, either automatically or with assistance from the OS, will tend to give you better results, because you can't predict exactly what the power consumption or thermal load will be just based on how much CPU time a thread has been needing. Usually thermal is the limiter and that has a slow transfer function so you tend to have a while to react to it.
 
Back
Top