cyring / CoreFreq

CoreFreq : CPU monitoring and tuning software designed for 64-bit processors.
https://www.cyring.fr
GNU General Public License v2.0
1.97k stars 126 forks source link

[AMD][VMR/RPL/GNR] Voltage Curve Optimizer #506

Open cyring opened 2 weeks ago

cyring commented 2 weeks ago

For AMD Vermeer, Raphael and Granite Ridge is introduced the VCO formula as a build argument:

make -j HWM_CHIPSET=AMD_VCO

Remarks:

cyring commented 2 weeks ago
Contributors @leinardi [5800X] @LethalManBoob [5800X] [5700X] @thor2002ro [5900X] @Slaviusz [5950X] @WildPenquin [5950X] @ppascher [5950X] @olejon [5950X] @Jon0 [7950X] @KeithMyers [7950X] @amfern [7950X] @tofurky [7950X] @mikealanni [7945X] @madoverlord40 [9950X]

VCO change is available since 85b1e626183986c3bdfcc9b2bb046e8f24a13882 in develop branch

If you have chosen the Voltage Optimizer within BIOS option then you have to specify HWM_CHIPSET=AMD_VCO to get an appropriate voltage Core reading.

Please post screenshots of the UI View > Sensors > Voltage in various cases: Idle and Stressed CPU (not showing Menu)

2024-08-25-135530_644x511_scrot

Tips:


Thanks anyone for helping

madoverlord40 commented 2 weeks ago

Please post screenshots of the UI View > Sensors > Voltage in various cases: Idle and Stressed CPU (not showing Menu)

Do I do this while having curve optimizer active, or not active?

cyring commented 2 weeks ago

Please post screenshots of the UI View > Sensors > Voltage in various cases: Idle and Stressed CPU (not showing Menu)

Do I do this while having curve optimizer active, or not active?

You do this while having curve optimizer active

madoverlord40 commented 2 weeks ago

Ok so i cleaned and rebuilt with make -j HWM_CHIPSET=AMD_VCO Im using a CO in bios of -20.

Here is idle voltage view: Screenshot from 2024-08-27 16-02-08

All core stress using your software voltage view:

Screenshot from 2024-08-27 16-03-46

cyring commented 2 weeks ago

@madoverlord40 Thank you for your tests. CO is really odd: from idle to stress, the VID delta is just about 4 for most cores. And unfortunately 9950X results don't behave as 7950X ones

VID to voltage formula has to be customized directly in source code and as a function of the curve parameters left in BIOS https://github.com/cyring/CoreFreq/blob/85b1e626183986c3bdfcc9b2bb046e8f24a13882/x86_64/coretypes.h#L788


Now BIOS can be configured with no CO, voltage offset and tweaks. Just the plain P-State. PBO is ok. A simple make (without HWM_CHIPSET parameter) will now build CoreFreq with standard formula: please let ne know if voltage is accurate

KeithMyers commented 2 weeks ago

Not using Curve Optimizer. Using per CCX with 52.0/50.5 @ 1.28 VID Here is idle and stress screenshots under my Boinc load. Screenshot from 2024-08-27 17-08-57 Screenshot from 2024-08-27 17-07-56

madoverlord40 commented 2 weeks ago

I still have CO on and have not testing with it off but as having curve optimizer on at -20 and level 5 CPU LLC in bios, i dont think this voltage is correct?

Screenshot from 2024-08-27 21-30-09

cyring commented 2 weeks ago

I still have CO on and have not testing with it off but as having curve optimizer on at -20 and level 5 CPU LLC in bios, i dont think this voltage is correct?

For this screenshot how was made the build ?

cyring commented 2 weeks ago

Ok so i cleaned and rebuilt with make -j HWM_CHIPSET=AMD_VCO Im using a CO in bios of -20.

When CO is activated, the VID values in both case, idle and stressed, are so closed that it can't compute the low and high Vcore!

cyring commented 2 weeks ago

Let me show you what we have with Zen2/Matisse

  1. No voltage optimizer or whatever LLC or performance tricks are activated
  2. Only PBO, in its default mode, is allowed

The VID values (obtained from current P-State register) are inversely proportionate to the frequency

Applying the voltage formula (specified in AMD datasheet), we are getting an accurate voltage (for both CPU and SoC)




madoverlord40 commented 2 weeks ago

I still have CO on and have not testing with it off but as having curve optimizer on at -20 and level 5 CPU LLC in bios, i dont think this voltage is correct?

For this screenshot how was made the build ?

I think its still built with HWM_CHIPSET=AMD_VCO.

madoverlord40 commented 2 weeks ago

You know i think these voltages im getting right now are good, not that i know what the formulas should be. But i rebuilt with just -j on develop, and then started to build HLOD in unreal engine 5, and voltages were between 1.29 and 1.36 while boosting. Seeing that i have a CO of -20 and LLC of level 5, its doing well. Even if the voltages are not correct, they are i think quite close!

Yeah, its close, im in RM now during a C++ all core compile, RM is averaging 1.33vcore, you are so close!

cyring commented 2 weeks ago

You know i think these voltages im getting right now are good, not that i know what the formulas should be. But i rebuilt with just -j on develop, and then started to build HLOD in unreal engine 5, and voltages were between 1.29 and 1.36 while boosting. Seeing that i have a CO of -20 and LLC of level 5, its doing well. Even if the voltages are not correct, they are i think quite close!

Yeah, its close, im in RM now during a C++ all core compile, RM is averaging 1.33vcore, you are so close!

Great to see that. make -j brings the default voltage formula. I'm going to merge last commit into master Thank you for your help.