@johnlietzke Here.
Ryzen 5000 Series PBO2 Advanced Per Core Tuning Via Windows & OCCT Walk Though
1. find your baseline
To determine the base performance from which to make your adjustments, simply enable PBO2 then set power limits to 'motherboard' and scalar to '4x'. After rebooting, launch HWinfo64 and scroll down to the section indicating the PPT, EDC, and TDC limit percentages. While running Cinebench multicore, one of these limits will reach 100%. You'll then want to record the PPT, EDC, and TDC wattages/amperages listed above while the test is still running (not the percentages). For my chip and board, these were PPT 220, EDC 190, TDC 135 (you'll need these values later). Close out of all other apps and run both Cinebench multi and single core tests again to record the scores. You can do this in a single run or over multiple, I use a custom 3 minute standard.
2. set the boost clock override
To figure out which level to use, I start at +0 and work my way up one step at a time towards 200, looking for the point at which per-core boost clocks begin to stagnate or drop. For my 5800x this was +50, but for the 5900x things began to level off at +100. Test for stability and lower by one step if necessary.
3. set curve optimizer per-core
This will be the most strenuous and time consuming part, but it's well worth the effort. You'll repeat the process as described below for each core individually. Once you find the stability-point for a core, you can leave it set and move onto the next one. Starting with core 0, the process is as follows:
set a -30 curve (negative).
reboot, launch OCCT, set it to small data set, SSE, 2 threads
open task manager > details, right click OCCT > set affinity, and select ONLY CPU 0 & CPU 1
run the test for 10-15 minutes. If it finds errors, go back into BIOS and lower the curve setting by 5 points.
You will repeat this loop until OCCT no longer finds any errors. If you want to be even more precise, you can then step UP the curve setting by 1 point at a time until errors begin to emerge again, and revert to the last passing value. You then move on to the next core - just be sure that you set OCCT affinity to the appropriate CPUs (threads). So for core 0, this is CPU 0/1, for core 1 this is CPU 2/3, for core 2 this is CPU 4/5, and so on.
4. set the PBO power limits
For this step, you're going to need to decide on a peak temperature target you're comfortable with (keeping in mind this will also influence the noise of your fans etc). For me, I wanted to go no higher than an peak of 80c.
Start by setting the PPT, EDC, and TDC to the values you recorded previously at baseline, then run a Cinebench multicore test and check the temp.
You'll then lower the PPT value by 5w and retest, repeating until you reach your desired temp.
Once the PPT is set, your next goal is to reduce the EDC and TDC until all three limit percentages shown in HWinfo64 reach 100% more or less simultaneously. You probably wont be able to get this perfectly on 100% for all three, one may be slightly lower, but try to get it as close as possible. In my case, TDC and EDC trade off between 99.8% and 100% while PPT sits at 100% all the time.
Note - If your cooling is good enough, your temps are within your limits and you don’t have OCD then you can skip step 4 and leave the PPT EDC and TDC running with no limits. Your choice,
An even better stress test then OCCT (I think its a bit light weight to test stability) is corecycler that uses prime95 for single core testing.
I recommend it over anything else but I know some people fear prime95 so that's why it’s OCCT in the guide.
Stability test script for PBO & Curve Optimizer stability testing on AMD Ryzen processors - sp00n/corecycler
github.com
Good luck and I look forward to hearing your results.