Effective clock vs instant (discrete) clock

CodeZ1LLa

New Member
Exactly! :) Moreover to read the actual multi the core needs to wake-up, which introduces the observer effect.
Hi, Martin!
May I ask you: how an "effective clock" looks programmatically? I just started to dig it for my project, and I use MSR to get values.
In my case, the results are slightly different than what HWInfo shows as an effective clock despite I tried to reproduce the logic as accurately as possible based on your explanation.
If it's not a secret (it's totally understandable if it is), can you PM me a snippet, pseudo, or some sort of formula?
Thank you in advance!
 

Martin

HWiNFO Author
Staff member
Hi, Martin!
May I ask you: how an "effective clock" looks programmatically? I just started to dig it for my project, and I use MSR to get values.
In my case, the results are slightly different than what HWInfo shows as an effective clock despite I tried to reproduce the logic as accurately as possible based on your explanation.
If it's not a secret (it's totally understandable if it is), can you PM me a snippet, pseudo, or some sort of formula?
Thank you in advance!

It's based on the APERF counter (delta), but even if you would implement the exactly same method as HWiNFO, you'd get somewhat different results due to different sampling points/intervals.
In some cases (i.e. AMD Zen with Snapshot Polling enabled) a different method is used that cannot be disclosed.
 

Zalinisto

New Member
Hey Martin,

I have a Ryzen 2700X and when I expand the Core Effective Clocks tab I noticed that all 8 cores have a T0 and a T1 Effective Clock. After reading through this entire thread and creating an account it dawned on me that I might be seeing the physical and SMT threads. Is this correct?

Thanks!
 

Martin

HWiNFO Author
Staff member
Hey Martin,

I have a Ryzen 2700X and when I expand the Core Effective Clocks tab I noticed that all 8 cores have a T0 and a T1 Effective Clock. After reading through this entire thread and creating an account it dawned on me that I might be seeing the physical and SMT threads. Is this correct?

Thanks!

Yes, T0 is what you call the "physical" and "T1" the respective SMT thread.
 

ladkii

New Member
I'm a bit confused about the perf clock readings for my CPU(3700X). So I found that the effective clocks closely match the readings from Ryzen Master (Thank you for that addition Martin). So basically, the perf clock readings show the instantaneous values and not the average of clocks over a certain interval, they also display the last clock of the cores right before they go onto "sleep" mode. And I do see the max values in my perf readings is 4.4GHz(as advertised). So my confusion is, when I have to see what's the max clock achieved by my CPU, I can, without a doubt check the perf readings right?
 

Zach

Well-Known Member
So my confusion is, when I have to see what's the max clock achieved by my CPU, I can, without a doubt check the perf readings right?
Yes you can check discrete clock for that, as long as you have "Snapshot CPU Polling" enabled from main settings.
 

Martin

HWiNFO Author
Staff member
Actually there's no simple answer to that. The active "Core x Clock" values (which you call perf) are determined by reading the actual multiplier of each core. This means that each core actively reads its own multiplier. So if a particular core is sleeping and HWiNFO queries its multiplier it has to run a (fairly small) task on it. That means it has to wake the core up, so the result you get here doesn't reflect the true state of the core as if HWiNFO would not be polling it. This is the observer effect. However this effect can also be very different since modern CPUs have several other technologies affecting actual and maximum achieved core clocks, i.e. Turbo Boost. The Boost clock also depends on how many cores are currently active, so if someone performs active polling of all cores, it can result in reduced maximum clock (mutili-core turbo).
So if you're running a certain constant workload where mutili-core turbo is limiting the maximum clock, such active polling of all cores might be undesired and not reflect the maximum clock achievable. In such case the Effective Clock might give better (more accurate) results.
The "Snapshot CPU Polling" is another even better option as in this case the CPU parameters including clocks are not affected by the observer effect.
 

Raimoraimo

New Member
Hi, new user here. I'm sorry if this is off-topic, but google brought me in to this thread. My issue/question:
I've been using Intel's i9-12900K for audio use (Pro Tools as the DAW) for a year now, and just now upgraded to the i9-13900K. Mobo is MSI PRO Z690-A DDR4 - I also have an identical gaming system, except it used to have the i7-12700K, and now has the i9-12, both on Win 11 21H2.

I've used HWiNFO64 (now v7.32) along with Task Manager to learn what my different DAW projects are doing as far as core allocation, power use etc. I use quite a bit of processing so it's taxing even to these modern CPU's, and like to tinker with my machines, trying to optimize them (and OC mildly etc).

I now have observed that on the i9-13900K the same projects generate much higher "peaks" in TM's Performance/Logical Processors view, and also in HWInfo's Effective Clock cores view, than on the i9-12900K, on the same BIOS version (the newest, 1.92). However, when I actually try to load the systems with artificially demanding single thread DAW loads (serial real-time audio processing), the i9-13900K does still perform better, and the i9-12900K "breaks up" (stop playback with a CPU error message in the case of PT) sooner. The i9-13900K TM display also shows a much larger variance on the cores in question (favored P-cores mostly, occasionally the P0 core), while on the i9-12900K it seems to be more "rounded".

So, could this be a BIOS bug on the Z690 board, or an actual difference of CPU Utility/Effective Clock reporting between the 12th and 13th gen? Both systems (and both versions of the DAW rig) are performing well, but I was initially rather worried when I saw the much larger TM and Effective Clock values on the same projects on the more powerful CPU.

Chipset and ME Drivers have also been updated (I also learned that the Chipset update didn't "stick" until done after the BIOS update - synthetic multicore like Cinebench R23 performed as it should, but actual core allocation was off and it wasn't using the 2 favored cores as expected until after I redid the Chipset update...)

Edit: I'll add that I do understand that the i9-12 reports base clock of 3,2GHz in TM and P-cores can boost to x52, while the i9-13 reports a base clock of 3,0GHz in TM (I think these are averages accross P/E) and can boost to x58, which will factor in to the reporting at least on the TM "Utility" side, but the "peaks" I'm seeing are still very high comparatively. FWIW, System Information Process Explorer is also reporting higher CPU usage on the i9-13 with the exact same projects running in sync.
 
Last edited:
Top