Live data from Hacker News

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

devblogs.microsoft.com

101–110 of 181 posts

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

#101
Here's another problem: what if a program is i/o-bottlenecked, and taking up 50% of the CPU's cycles. Because the CPU utilization is not 100%, it clocks down to 50% of its maximum clock rate, so now the program is taking up 100% of the CPU's cycles. This isn't throttling, it's just regular power management.

Clearly that's a different kind of situation; how do you distinguish the two?

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

#102

Earlier quoted context omitted.

3.5 GHz instead of 4.1 GHz is a 15% difference, not 30%. I never expect multicore performance to be the same as single-core so if that's what you're assuming, it's an unreal assumption. I expect lower clock speeds for multicore regardless of what Task Manager shows. But okay, so there's some discrepancy, whether 15% or 30%. Okay, so I might underestimate it, and... then what? What would actually go wrong? I think wha…

It sounds like you don't ever engage in capacity planning. You should read about it, real usage numbers are very important.

It sounds like you don't ever use a computer as a consumer. Go ask your non-technical friends how often they're "capacity planning" when they pull up Task Manager.

And I'm just talking about what 99% of ordinary users expect most of the time. Nothing prevents you from measuring whatever metrics you want either. Obviously "I think this is what most people expect utilization to mean" obviously does not imply "I think you should be banned from anything else you might find useful"...

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

#103

Earlier quoted context omitted.

Whatever frequency it could execute the next cycle at, assuming there was no desire to minimize power usage. It's a transient measure, not a steady-state measure.

The manufacturer doesn't know this, nor is it easy to determine. Is the max turbo frequency on air the max? On water (if so with what size rad with which fans)? At what ambient temperature? Is the max including tau, if so does that max change when it's about to expire? What about if the CPU was on ln² but the user has run out and can't add more to the cooling pot? Every one of those numbers is different, and frequent…

No, you're just making this hard. Just imagine the CPU decided it wouldn't deliberately throttle its frequency to save power. Obviously nothing stands in its way of doing that; that's what it would do if they didn't deliberately tell it otherwise. Now what frequency would it execute the next cycle at? Obviously it decides on some frequency, and it does that without you telling it whether it's air or water cooled. Whatever number it would decide on: use that number.

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

#105
post #11

A key problem with this proposal is that modern CPUs do not have a single definitive maximum frequency. You have the base frequency which is rarely relevant outside of synthetic workloads then you have a variety of turbo frequencies which interact in complex ways. AMD's latest CPUs don't even have clear upper bounds on their frequency scaling logic. It's a big black box and the results can vary depending on the workl…

Ideally, in the article’s example, the program generating heat and causing the throttle would have the throttled time counted against it (as a separate metric).

That’s hard to do without hardware support, but I wonder how hard it would be to get a decent metric with currently available performance counters.

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

#106
post #74

Earlier quoted context omitted.

i think you could prove that on linux by getting the number of instructions run. I think perf has a way of getting that info for you. not sure if windows has something simmilar

Hmm, different workloads will have different mixes of instructions, which will take very different amounts of time per instruction (e.g. a chain of uncached memory lookups vs a tight loop of register-register arithmetic). If you had two instances of the same workload, and one was throttled, then yes, you could compare instructions per unit time. But comparing prime95 vs the other benchmark is likely misleading.

Yeah that would be the thing to prove that prime95 is going through more instructions so the cpu runs hotter

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

#108

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.

I fall in the 50% camp because showing 100% when it's clearly not using 100% of what the CPU is capable of is misleading, particularly in troubleshooting performance issues.

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

#110
post #11

A key problem with this proposal is that modern CPUs do not have a single definitive maximum frequency. You have the base frequency which is rarely relevant outside of synthetic workloads then you have a variety of turbo frequencies which interact in complex ways. AMD's latest CPUs don't even have clear upper bounds on their frequency scaling logic. It's a big black box and the results can vary depending on the workl…

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…

CPU usage calculation can be (mainly) broken down into "percentage time spent not idle due to program" vs "percentage of max performance used by program". The former is usually what an end user cares about and measures the amount a program is hogging the system. The latter is usually what a programmer wants to know to see how optimized the program is.

Both are extremely complex with a lot of nuance after that but the "percentage time spent not idle due to program" type this article refers to tends to be simpler than trying to figure out cache/mode switches/instruction level parallelism/instructions per clock per type/and so on on top of everything you need to figure out in the first case anyways.

Post reply on HN