Live data from Hacker News

What should the CPU usage be of a fully-loaded CPU that has been throttled?

devblogs.microsoft.com

121–130 of 181 posts

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#121
post #64
post #10

When the OS has asked the CPU to slow down to more closely match the performance currently required by the software, then it is somewhat misleading to report that an application is using 90+% of the CPU time, even if the CPU is actually spending 90+% of its time running that application. However, when the CPU's speed has been reduced because it's too hot or the system is otherwise unable to allow the processor to sus…

> However, when the CPU's speed has been reduced because it's too hot … Maybe just measure overall system load as current CPU temperature as a percentage of maximum?

Perhaps in stable environments that would be reasonable, but it would also mean that if I put my laptop in the sun, the system load should become large and potentially (hot heatwave sun on a dark laptop) exceed 100% even if the laptop is completely idle.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#122
post #14

Earlier quoted context omitted.

Interesting. Does this mean that if you are not going to use all HT threads it's better to turn off HT?

SMT is usually a throughput win, and usually a latency loss. I was playing with my Threadripper a while back and for C++ builds of large projects, HT results in about a 10% improvement in compilation speed. 10% is a big deal and you should take it. The downside is that games had noticeably lower framerates even with the rest of the CPU idle (at least the games I play are bounded by single-thread performance across ma…

FWIW, you can set core affinity for your game process.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#123
I talked about TDP Computing a lot. We are basically limited by Cooling of a product designed.

How about another measure, % of CPU TDP? Or some form of TDP measuring. If it is 100% CPU TDP, I know it is pushing as hard as it can.

( But then when your cooling aged you will be running at 100% TDP but at lower clock speed without realising it. )

Thinking about it this simple subject is really complicated.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#124
post #118

Earlier quoted context omitted.

CPU usage is an incredibly complex metric that doesn't really explain what is actually going on. I noticed while running a benchmark I can get my CPU to 50c and 100% usage and it stays steady like that. But then I tried prime95 and my cpu very quickly hit 99c also at 100%. Likely the different benchmarks were both running as fast as they can but the prime95 one ran on a faster part of the cpu which could generate mor…

> my cpu very quickly hit 99c also at 100% That should never happen and it's ridiculous that we just let manufacturers get way with it.

Why? 100c is typically the max nominal safe operating temp for CPUs. It would be a waste of resources to add additional cooling to computers not intended to run these type of workloads.

Prime95 is basically a synthetic workload so it makes little sense to optimize for it.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#125
post #86

Another approach may be to take inspiration from the `cpu load` metric on *nix systems and go _above_ 100%. In this example, the CPU usage would be `200%`: The system would like to be doing twice as much as it's currently doing, but something's throttling it. Of course, this opens up other issues with how to aggregate multiple cores, what the benchmark for 'max' should be, etc. Perhaps the more fundamental answer is…

Not following. Linux reports each core as 100%. So an 8 core machine maxes at 800%. So seeing 200 load doesn't indicate to me that it's throttled, but that it's using the equivalent of two full cores. Or did I misunderstand?

The context was load average, not CPU usage percentage. The load of 1 means (more or less, I'm simplifying) "all the time there one task ready to be run, so no other task is starved". In most systems/situations you'd see load 400 on a VoIP conference server.

It's more of a "pressure" / "need" measurement. And yeah, applying that to per-process CPU measurement would be interesting.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#126

I think we can have more nuance than a choice of 50% or 100%. I fall in the 'Show 100%' camp for sure, showing 50% but not indicating why isn't particularly helpful without knowing the background here. I think a separate indicator for an overall throttling condition would be helpful. Show a 100% usage and a throttle indicator together.

Consider a tweak to how *nix utilities report currently:

* 100% per core's for the factory target speed (what a CPU is sold to run at non-turbo/boost/whatever)

* turbo / boost displays figures above 100% (per core)

* special fake accounting buckets for not just cpu_idle, but also cpu_powersave, cpu_thermal, etc. Any status caused by yielding or reducing the runable time of that core.

* An additional (does this exist already?) counter of executed instructions, in addition to the run time for each task / thread. On multicore systems this should be recorded for each core the thread can run on. Large NUMA systems might disable, or node restrict, this for obvious reasons.

This would give a clear picture of both the utilization of hardware as a whole, as well in the program context.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#127
I’d add “Energy saving / throttling” process and accounted it in another color on the graph (green vs blue), like in “world energy use over” google search. This way you’d have 50% green-busy CPU, and the other 50% available. Unthrottling would reduce green to lesser values, and 100% would always remain constant in absolute value.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#128

Perhaps, the system should report two numbers: the % usage of the CPU overall resources and the % usage of the throttled resources. There is no constraint that one has to use only one number. Perhaps, in 2021, CPUs are complex enough to deserve more than one number to give a useful representation of utilization, as it works with all sorts of factories/plants. Also, who would love to see in the metrics reported CPU us…

thank you. I'd hazard a guess that an additional step toward information demarcation would prove beneficial: Bifurcate the task manager into an "everyday" mode by default that displays /currentState where curentState = throttling, user-lowered or heightened TDP via TDP UP + ample cooling for sustained loads: Indicate currenState next to a colored icon set & standard percentages.

Then, implement advanced mode that contains a deeply similar but mildly extended UI. Imagine Office with 1 ribbon tab, cleaned up, vs 3, filled to the brim with choice, tools. In principe, thinking of keeping the diff small but noticeable only slightly, like that.

Re: What should the CPU usage be of a fully-loaded CPU that has been throttled?

#129
post #19

Power saving and "throttling" (usually it's un-turboing) are different cases that shouldn't be conflated; in one case the processor could run faster but in the other it can't. Ultimately we may want different metrics depending on what they're going to be used for. If you calculate relative to base frequency you will get utilization over 100% which is going to confuse some people. Linux has done some work in this area…

MacOS has a weird solution to throttling. They put a fake process in the process list which looks like it consuming x% of the resources but really it is just blocking some usage to allow the CPU to cool.

I love this tbh. It's a great indicator and allows me to easily use existing tracking/functions in Activity Monitor to assay thermal headroom at particular points etc
Post reply on HN