Hi,
So running my 5600x curve optimizer all cores to negative 22, I saw some videos running negative per core with much lower numbers (5, 10, 15, 5, 10, 5), not sure what I'm doing is right or wrong? should the preferred core have the lowest negative or the highest?
GB Aorus Elite X570.
thanks,
Videos
I have Ryzen 9 7950X3D (I am new to OC) is it a bad idea to go Curve Optimizer "All Cores" only or should I go "Per Core"? Do you have any procedure, how to find the best settings Per Core and test it? I was thinking Prime95 or OCCT, dunno which one is better.
Each CCD sharesone voltage rail for all the cores within that ccd. Most people assume that since curve optimizer allows per core offsets then each core has its own dedicated voltage rail for each specific core however this is NOT the case. If 1 or more cores are active (not parked) and they have a different offsets then the SMU will pick the lowest offset of the group and that’s what you will run at. It doesn’t care that every other core is at -60, if you have one core at -5 and all cores are active then the cpu will effectively run as a -5 offset cpu.
Per-core CO helps single/light-thread boost. (Think single core benchmarks, marketing) no modern AAA game runs on 1 or 2 cores, the year is not 1999)
TL/DR: Worst core dominates anything beyond ideal single threaded conditions.
This is free performance that I hadn’t taken advantage of in the year I’ve owned my Ryzen 5600, so I’m writing to this to advocate that nobody else wait as long as I did.
This is my guide. There are many like it, but this one is mine😁.
Curve Optimization is very easy - the testing being automated - and poses no danger whatsoever to one’s hardware; the worst you can expect is a Windows bluescreen, and that is no more deleterious than stalling a car. The only drawback is that you will need to have your computer running tests that render it useless – if you are prepared to leave it running overnight and/or while at work, though, this is not a problem – and it can take a long time.
1. Software (all free)
You will need:
AMD Ryzen Master (latest version)
HWINFO (to get the preferred core order and, optionally, compare before and after temps/power)
Core Cycler (which contains PBO2Tuner – set and test curve optimizer values)
CPU and gaming benchmarks (compare before and after performance, test for real-world stability)
2. Preliminaries
Open HWINFO and uncheck both boxes, then navigate to “Central Processor(s)”-> <your CPU>. Make a note of the sequence after “Core Performance Order” – this is the order in which we will be testing them with Core Cycler, but you must SUBTRACT 1 from each value; Core Cycler starts numbering cores at 0, not 1.
Open AMD Ryzen Master, select Advanced View, click Curve Optimizer, Per Core, then click Start Optimizing. Ryzen Master will then enter an automated procedure to generate its best estimate of what your CPU is capable of. Plan to be away from your computer for at least an hour while this is going on; when you come back, make a note of the values it generates, but DO NOT APPLY them - just close the program. Note that the “subtract 1” rule applies to Ryzen Master, as with HWINFO.
Open the Core Cycler config file and make the following changes:
“stressTestProgram = YCRUNCHER”
“coreTestOrder = <your order from earlier>” - remember to subtract one from each
“numberOfThreads = 2”
“mode = 20-ZN3 ~ Yuzuki” in the ycruncher section, halfway down the page.
Some rationale:
The preferred core order is from WORST to BEST under-volter, and thus MOST to LEAST likely to fail – this is because the more preferred a core is, the more efficiently it is already running, and so the lower the voltage floor is. This makes testing faster because the most unstable cores will fail first, and dropped cores are left out of subsequent intra-session iterations by Core Cycler. Also, the ycruncher Yuzuki test is considered to be the most difficult one to pass, so we might as well start with it; you can – and should – run others afterwards.
Open Windows Event Viewer, right-click on Custom Views, and click Create Custom View. Check “Warning”, and “Error”, then “By source”, and check “WHEA Error” in event sources. Name the view something meaningful, then exit the Event Viewer. This is just in case Windows ever BSODs – not likely, but possible – and we will need to know which core failed.
3. Testing – Round One
Create a spreadsheet like the one below – we will be keeping track of passes and fails.
in the beginning...When you’re ready to leave the computer alone, close all programs, open PBO2Tuner and key in the values given by Ryzen Master earlier, then click Apply, and minimize the program. These values are applied as though they were typed into the BIOS, and persist until they are changed, or the computer is restarted.
Run “Run CoreCycler” - the testing will begin, and will run until you stop it, or until every core has thrown an error.
~TESTING HAPPENS – LEAVE FOR AS LONG AS POSSIBLE, PREFERABLY 6+ HOURS~
When you come back to the computer, if Core Cycler is still running, stop it with Ctrl-C, and see which core/s, if any, have failed; Ryzen Master’s supplied values are usually rather optimistic, so you should expect some errors, which show up in bright purple text. (If you accidentally close the window, the log file contains all the same information, but is more annoying to parse.)
Scroll around the window and see how long it took for the core/s in question to error out – a fast error is anything under 10 mins, IMO, and a slow error is anything over. Any core with a fast error will be having its CO value increased by 2, while slows will have theirs increased by 1; if any cores don’t error (in which case, Core Cycler will still be running on those cores when you come to check), add them to the
“coresToIgnore =”
– no point hitting these cores again until Round 2.
(If the machine has reset, go into Event Viewer and look in your custom view – under Error, there will be an entry called “Processor APIC ID”, with a number, the number corresponding to a thread. Core 0 will run threads 0 and 1, Core 1, threads 2 and 3, and so on; whichever core was running the failed thread, increase its CO by 3 or 4 – that core was not even close to stable!)
Update your spreadsheet as shown below, with the adjusted CO values, and save it – when you are ready for your next test session, put these new values into PBO2Tuner before you start.
after first sessionKeep repeating the above until all cores pass a session of this “all cores at once” testing.
after second session after third sessionand so on; my last all-core session, after shedding cores as they passed, looked like this:
final all-core results4. Testing – Round 2
The next step is to extend the testing for each core. You can jump right to hitting one core for 6+ hours (as I did), or divide the cores into two groups (“front half, back half”, from the order earlier, is best), and test them one half at a time, Ignoring the cores in the other half. This will double the amount of time each core is under stress, and might generate errors that didn’t appear before, but you will be much closer to the true stable value thanks to the previous testing.
Change the core testing order to match the results from Round One - they might not be the same as the HWINFO values; for example, HWINFO gave me 2 ,1 ,0, 4, 3, 5, but ordering by the results of my Round One, worst to best, would be 0, 1, 4, 5, 3, 2.
Do the “increment on error” procedure from before, until the front half all pass, and then do the same for the rear half.
5. Testing – Round 3-4-5
If you like, you can split the cores again, and repeat, getting all groups stable. Keep splitting until you get to the point where only one core is being tested at a time:
Ryzen 3 – four, two twos, four ones.
Ryzen 5 – six, two threes (or three twos), six ones.
Ryzen 7 – eight, two fours, four twos, eight ones.
Ryzen 9 – 5900 = twelve, two sixes, then each six as per Ryzen 5; 5950 = sixteen, two eights, then each eight as Ryzen 7.
Yes, this CAN be a lot of testing, but Curve Optimizer CPUs are most likely to crash at the highest boosts (= lowest loads), so sheer duration is the only way to generate any confidence in stability. Thankfully, Ryzen Master gets us most of the way there; the values it gives are usually stable enough at least for idle Windows tasks.
My last round of Yuzuki was a 40-iteration test on each core individually - 5-6 hours per core:
final resultsFrom Ryzen Master's -28, -30, -30, -30, -30, -30, I ended up at -20, -21, -29, -26, -22, -26.
6. Further Testing
It is advisable to use the PRIME95 HUGE on each core in turn, as this is another very low load situation that lets the CPU boost to its maximum; make these changes in the Core Cycler config file. Feel free to try to some other presets as well – no such thing as too much testing. Read what other users found to be their “magic bullet” test settings, and try those out.
double-checking with P95The best test, though, is, as always, to use the thing - browse, game, edit, do whatever you normally do.
7. Finalizing
When you’re happy that everything tests stably, go into the BIOS and enter your final values in the Curve Optimizer menu – this will save you having to use PBOTuner2 every time you boot up.
If your computer ever crashes (not impossible) use the Event Viewer to identify the rogue core, and increase its CO value in the BIOS.
Hi guys,
I'm tuning Curve Optimizer per-core on my Ryzen 5 7600X and I'd like some advice on both the CO values and the most effective way to test stability.
My setup:
- CPU: Ryzen 5 7600X
- Motherboard: MSI B650 WiFi
- RAM: 32 GB DDR5 6000 CL30
- Cooling: 360 mm AIO
- PBO limits: set to Motherboard
- Testing tool so far: CoreCycler
Before doing per-core tuning, my CPU seemed stable at **-25 all-core**, and it might have been able to go lower. Now I'm testing each core one by one.
Current Curve Optimizer values:
```text
Core 0 (Star / preferred core) = -32 <-- currently testing
Core 1 (Star / preferred core) = -26
Core 2 = -30
Core 3 = -30
Core 4 = -30
Core 5 = -30
```
Core 0 is one of my preferred / star cores, and it is currently almost at **-32** without crashing or throwing errors in CoreCycler so far.
Right now, my testing strategy is this:
- First, I test each core individually with CoreCycler for around **40 minutes per core**.
- If a core passes, I try lowering the Curve Optimizer value a bit more.
- Once I find provisional values for every core, I know I will probably need to do a much longer stability test.
- My idea was to later run at least **one long CoreCycler pass of around 2 hours per core**, maybe more, to validate the final settings.
My questions are:
-
Is it normal for a preferred / best core to handle a very negative CO value like -32, or should I be more conservative with the best cores?
-
Should I keep pushing Core 0 lower until CoreCycler fails, then back off by a few points?
-
What safety margin would you recommend for daily use after finding the first failing value?
-
Is my current testing method reasonable — quick 40-minute passes per core first, then longer 2+ hour passes per core later?
-
Is there a more efficient way to test per-core CO stability without wasting too much time?
-
Is CoreCycler enough for per-core testing, or should I also use OCCT, y-cruncher, Prime95, idle/light-load testing, gaming tests, etc.?
-
Since my PBO limits are set to Motherboard, could that affect stability testing compared to using manual PPT/TDC/EDC limits?
I'm mainly looking for a stable daily configuration, not just something that passes a short benchmark. I know Curve Optimizer instability can sometimes show up during idle/light loads or random real-world usage, so I want to avoid chasing numbers too aggressively.
Any advice on the best testing strategy and safe daily CO tuning would be appreciated.
Hi guys,
I bought a 7800x3d, and so far I really enjoy it. I'm trying to set PBO + curve optimizer and coming from a 5900x and reading a lot of guides, it looks like best cores should not be able to have lower negative offset than the other ones. But so far my settings are:
core 0 -30
core 1* -35
core 2 -30
core 3** -30
core 4 -30
core 5-30
core 6 -20
core 7 -30
According to Ryzen Master, my best core is core 1* and second best is core 3**.
I rigorously tested these settings with OCCT, prime95 overnight and corecycler, an I had no errors.
So my question is, is it normal that my best core can handle such a low negative offset, lower than the "regular" cores? Also, for core 6, I couldn't get lower than 20, as it gave me errors. That is weird because according to OCCT, it should be the worst core out of them.
Thank you for your answers!