So here are my results so far, tuning my 9800X3D for the best performance - within the priority of keeping it cool, and within the power, current, and temperature limits of the Precision Boost Overdrive 2 algo.
The basic idea is to undervolt using a Negative Curve Offset to voltage, which lowers the voltage, current and heat, and provides some headroom for higher frequencies.
The problem is that there are 8 cores in the 9800X3D, all slightly different and under load they fall in to a range of voltages. The most efficient, fastest core (the “preferred” core) is usually already at the lowest voltage of the group - with less room to undervolt.
For example, I could only use an All Core negative offset of -20 or -25, if I went to -30 it would crash.
Thanks to "Gupsterg"s article, I was able to find the per core voltages under load, and then apply a per core negative offset to get them all to around the same voltage level, and then gradually increase the offset of the whole group.
Before any tuning (just EXPO and PBO Auto), under load the CPU would reach it’s maximum boost of 5.2 GHz at about 1.2V, and even with my water cooling, benchmark testing would push the temperature in to the 80s.
After tuning, I had voltage headroom to add the 200 MHz boost clock, so 5.4 GHz, and have core voltage slightly under, or at the same 1.2V, and benchmark testing remains in the 70s.
I’m not advocating this, just observing that there is a way to reduce heat, voltage, and slightly improve performance with per core offset instead of all core.
If I wanted to be conservative, I could stop at Step 1, or 2. If I lowered the boost clock from 200 to 100, the voltage under load would only be about 1.15V, still a significant thermal savings, at 5.3 GHz. And if it’s unstable (because I’ve offset too far) I can reduce each per core offset by the same amount until stable. I have yet to do long duration tests.
Also, AMD provides a “Curve Shaper” which allows adjusting the offsets at 15 points (a matrix of temperature and workload ranges). However this is applied to All Cores - and the wider the difference between cores, the more it limits the range of of the Shaper.
I suspect that harmonizing the voltages using Per Core offset would also benefit those using Core Shaper - since the Shaper value is applied to any Curve Offset value (per SkatterBencher’s research and testing).
Here’s a snapshot running Cinebench 2024, at
- 5.4 GHz (5.2 + 200 MHz boost clock)
- CPU Core at 1.2V, 109 W (under the 120 W limit)
- CPU Package at 134 W (under 162 W limit)
- Temp at 73C
If I took away the 200 boost, to run at the regular 5.2 GHz, Cinebench would draw 1.15 V 85 W and about 65C. So I’m pretty happy with having this range of “safe” choices with the boost clock and low temps.