In the never-ending hunt for performance and efficiency, the free software Clock Tuner for Ryzen (CTR) will soon be making a big update for Zen 3 available to the public.
CTR 2.1 brings a whole host of updates, so in this article I’ll provide you with some of my own thoughts and recommendations—including comparisons to AMD’s native offering with Precision Boost 2 and Curve Optimizer!
Let’s get tuning!
Is CTR 2.1 “Only” Lazy Overclocking?
The one thing I think people are expecting with CTR is just a simple “click and you’re done” solution. Although you can do this (in a way), I would strongly recommend understanding what CTR does and use the tools within it to get your preferred results!
Firstly, it should be noted that CTR is not the only way you can ‘tune’ your CPU. In my example case with the Ryzen 7 5800X, at the end of the article I will show some alternative options which make sense for the CPU. Specifically around the new ‘Curve Optimizer’ function of Precision Boost 2.0
Additionally, although CTR 2.1 is compatible with other generations of Zen processors, we will be focusing on Zen 3 performance in this guide. Also, 1usmus (the developer of Clock Tuner for Ryzen) doesn’t recommend a number of the options for anything but Zen 3 right now while the new version of CTR is being tested.
At the time of writing this, I was running the RC2 client. RC3 is available to backers as of March 18 (just after I finished some of my long runs for the sake of this article… good timing).
Finally, this is not a be-all-and-end-all sort of guide. This is simply me walking through my own experiences with CTR and giving some pointers along the way, in the hope it helps you. The client is really good at reading your system performance, and you can Tune to your preference too. If you want some more… comprehensive guides, we’ll have some links at the bottom of this article for you!
Okay, that’s enough disclaimer! With all this out of the way, let’s take a look at the interface and walk you through setup.
Getting Started (Some General Guidance)
Outside of the warning splash screen, once you click on ‘Tuner’ on the left bar, you will be greeted by the above screen. Here, you can see a number of things at a glance, most usefully the CCX core clocks and power delivery below it. When I took this shot, the system was essentially running idle with everything I have been testing and profiling within it disabled.
This top interface is the key thing to keep an eye on, as so much of the Zen 3 boost performance is linked to how power-efficient your cores are in running their clock. The TL;DR here is: the less power a core needs at a specific clock, the cooler it remains and the higher (and longer) it can be boosted before you hit thermal or power limits.
NOTE: If you have never used CTR before, I would strongly recommend reading 1usmus’ own guide on this when you download it.
Why or Why Not Curve Optimizer?
This is sort of what AMD was thinking about with allowing users to adjust each core in the Curve Optimizer. In that, however, you’re focusing on overall power only within the bounds of the triangle (positive values resulting in giving the core more voltage, or negative values reducing it), whereas in CTR we are looking directly at core voltage against core frequency and giving more granular states at overall CPU levels as Profiles. Overall, we’re looking at a more precise control, which will generally give you far better results.
Although I’m using this piece to explain my setup with using CTR, with the 5800X specifically I ended up going with a simple Curve Optimizer adjustment, which I will explain at the end. For now, though, let’s move into how CTR works and how you can test with it!
CTR Step 1: Diagnostic
By default, the ‘Settings Mode’ you see in the middle of the screen there is just set to default, so if you don’t want to go messing around with tweaking the performance of CTR (really, really not recommended unless you’re trying something specific) then leave this alone!
For the sake of this guide, I personally ran Clock Tuner for Ryzen with the default settings for use on my system.
This build is primarily for gaming, and has the following specifications to remember for CTR:
CPU: Ryzen 7 5800X
CPU Cooler: Corsair H115i PRO RGB
Thermal Paste: Thermal Grizzly Kryonaut
Motherboard: ASUS X570 TUF Gaming
RAM: G.SKILL Trident Z Neo 16GB (2 x 8GB) DDR4 3600Mhz CL14 (note: tuned RAM)
As the RAM Calculator is another of 1usmus’ tools, I might create a post for that too closer to its update (coming after CTR 2.1 has been released!).
Clicking on the ‘Diagnostic’ button, you will see a number of things start. Firstly, you will see Cinebench R20 open and run a standard multicore test to get a baseline benchmark for the system.
You will see these results logged in the text pane on the right, so to keep things consistent, my details were as follows:
Cinebench R20 final result: 5896
Voltage: 1.388 V
PPT: 141.9 W
At this point, CTR starts to do its thing: measuring the cores for frequency, voltage, and temperature. It does this to get a handle on what the performance potential is of each core, as well as its power efficiency. You will see a number of things appear here, like the priority order of your cores as well as a boost tester. Lastly, it will start slowly dropping the voltage to the CPU while locked to 4375 MHz, starting at 1187 mV until the system crashes. Here, my system crashed on the 2nd run at 1115 mV, so 1121 mV was the last pass point.
What does this all mean? Well, when your PC reboots and you go into CTR 2.1 you’ll be greeted with the above information. This is the test’s recommended settings for the profile, as well as the test recommending an undervolt based on the last test.
My CPU is a SILVER sample, but don’t freak out by this naming of your CPU; there is more performance to be had when compared to out-of-the-box performance, even if you have a worse CPU result.
CTR Step 2: Profiles
So, now that we have our recommendations, you could just place these results into the profiles and call it a day. But I wanted to explain a little about what’s going on with the profiles.
Fundamentally, the profiles are designed to give you a specific boost clock that does not need to just pump voltage to your CPU like Precision Boost Overdrive (a crude simplification which AMD would hate me to say, but you get the idea).
This means that the performance you get as your CPU usage is loaded up is not only higher, but it’s also doing it with less power constraints.
That’s why my Cinebench result of 6042 pts here exists, as the cores are now running efficiently. Our voltage to the core dropped from 1.386 V to 1.25 V (so, a little safer too tbh). So, although our clock drops to 4575 MHz from AMD’s default all-core speed of 4700 MHz, we still come out with a better result.
When you click the ‘Profiles’ button now on the left bar, you’ll be greeted by spaces for your P1, P2, and PX profiles. The simple breakdown here is P1 and P2 will enable based on CPU load, and PX is your single-core CPU boost. All of these were calculated for you based on the tests performed by CTR 2.1, and you can either enter these numbers yourself or click the option to ‘Fill’ the settings on the right of the Profiles page and it’ll pull that information over.
Pretty neat, right?
Step 2b – Enter and Forget, or Tune?
Now, depending on what you’re doing, you might want to tweak your voltages a bit still. For instance, when I was gaming under my profiles, the system would occasionally lock up, or a game would crash. Not good situations to be in. Depending on the game, it would bounce between mainly P2 and P1 (yay for high-frame-rate gaming pushing the CPU to process frames). So, with each of my voltages, I added just a small 18 mV increase, and things have been butter-smooth since.
However, for me, the tuning aspect of these profiles is where it gets interesting, so we’ll move forward with tuning. But do remember that, at this point, you can just stop and call it a day with the profiles (if they’re stable). If you want “simple” overclocking performance, you will need to more-or-less leave it at this point.
CTR Step 3: Standard ‘Tune’
Do any of you watch Formula 1, or any motorsports for that matter? Well, if you do then you might hear a phrase used in regards to tires “falling off the cliff” where the performance of the tires just hits its limit and you lose all performance.
Tuning is a similar thing.
By default, the Tune function will test the CTR numbers, yet if you’re not wanting to spend anymore time on this, you can just enter the numbers it generates in the initial diagnostic and call it a day. They are safe and stable and not at all bonkers, and also won’t give you hours of data to look over.
Like Formula 1 tires (and depending on the quality of the CPU), you will hit a point where all the voltage in the world will not stop your CPU performance from dropping. For those keeping track, the settings here were 1343 mV / 4675 MHz, and we ended up with a score of 6157.
Now, that sounds like a good multicore result on paper. But the problem you get at this point is temperature. We start pushing back up to the temps of the default system performance… which may or may not be fine, based on your use case.
Above all, when you hit the big ‘TUNE’ button, it will work out numbers to give you good, stable performance.
Once done, you can apply the tuned settings to the profile and call it a day.
Or, you can do what I did:
Step 3b – Remember Your Use Case!
To give a little context for this, I am going to provide my tune log (just the text file) from the other evening, for what I ended up testing in my P2 settings with the Tune tool.
You can see from the log I’m also just messing around with settings as I go, as I was originally looking at some changes to P1 too, before changing my focus.
In the end, for my P1 setting, I was generally happy with values CTR recommends, as I’m not (generally speaking) going to hit over 80% CPU usage on most things. However, as I am wanting a gaming-focused system, I’m more likely to be using 4-6 cores heavily, depending on the game. Thus, my P2 profile is more critical.
In my tests, you’ll see I let this run for a long time (from 6:42 PM to 8:13 PM for the main tune in question). The aim here was seeing how far we could go up in frequency, with trying to stay at no more than 1.35 V on the core. You will see on Step #13 and #14 in the linked log that this tune had already been running for a good ol’ while, and yet it passed 4750 MHz and moved onto trying 4775MHz… at which point the CPU thought I was taking indecent liberties, and crashed the whole system.
Step 3c – Know Your Limits!
So, it’s 4750 MHz with 1.35 V and call it a day? Nope.
CPUs are like horses. They can be led to water with enough gentle coaching and plenty of carrots along the way, but they can’t be forced to drink the water once coaxed there. And even getting them to the water could be a real challenge on a cold night in Stoke (hi to any UK readers). In short, CPUs can be a bit temperamental, so if you think the same exact speed and voltage will always yield the exact same stability then you may be disappointed.
The voltage is more-or-less right on the limit of what is “safe”. It’d be 1.34 V if we’re being completely accurate; however, with my cooling and motherboard, I’m comfortable with 1.35 V delivery.
Yet that ragged edge of the frequency (based on it immediately crashing the whole system at 4775MHz) is something I want to avoid. So we’re going to bring it back 50 MHz and set this to 4700 MHz.
Okay, so after all that fiddling, let’s make a quick Profile Comparison to see just how different things are now:
P2 Profile Details
Initially Tuned Values
Long, Custom Tune Values
|CPU Usage Value||53||35|
CTR Step 4: What Does It All Mean?!
The first thing to note when looking at the chart directly above is that just 7 mV more Voltage seemingly got us 50 MHz more speed. This is a bit of complex one to explain, but essentially we had a lot more power headroom on 1.343 V with the 4.675 GHz setting, versus the 4.7 GHz setting. It is still nice and stable, but as I noted above, anything higher than this and we’re going to need to push more than 1.35 V to the core.
The second thing to note is related to what’s going on in that ‘CPU Usage Value’ row. As I will be mainly gaming, I’m using P2 as an all-core ‘dropping off point’ from the single-core PX profile. At 35% usage (essentially once 3 cores are loaded), it’ll hit that 4.7GHz across all cores and stay at this. If it goes down or the system only peaks the one-core, the PX will enable which will aim for 4.75-4.95 GHz while enabling up to 1.45 V.
Finally, if it hits my P1 threshold of 75% (equivalent of 6 cores loaded), it will ease off the clock to 4. 6GHz and drop the voltage to 1.275 V. That might seem counter-intuitive, as you’d assume that loading up all the cores would require you to push more voltage. However, this is only true if I wanted to sustain the clock. As I’m dropping down 100 Hz, removing 75 mV to the core isn’t outrageous; we’re not at peak clock, where we’d be needing to push super hard.
The general rule of thumb at the top end is 25 mV gives you 50 Hz, so if I was running on the ragged edge of the core, that 75 mV would result in a crash (as I would only be able to drop it by 50 mV at most for 100 Hz in theory).
Step 4b – 5800X Woes
The 5800X is rather interesting, in that the 8 cores are all on one CCX. This greatly affects how the 8 cores interact with each other. It is a touch different when compared to its bigger brother the 5900X, which is 6 cores on each of two CCX nodes for its total of 12 cores.
Those CCX nodes give you more of a range in flexibility, and one of the things that I can’t do on the 5800X is assign different values to multiple CCX nodes. So, a spread of cores which might be higher-performing on one CCX could be pushed harder than those on another CCX. Sad times for me, but it does make things a touch simpler!
To say that my profiles are on the aggressive side is reasonable. I’m sacrificing a fair amount of cooling potential to give me quite high clocks across loads, something which will be useful in gaming but not a whole lot else.
If I wanted to use this system for more workstation style tasks, these would look very, very different. I would not want to push my frequency or voltage anywhere near these levels, it would realistically be closer to the out of the box performance. Probably something like 4.45GHz at 1.2V (P1), 4.55GHz at 1.25V (P2) and 4.7GHz // 4.65GHz // 4.6GHz at 1.35V (PX) just to keep things super, super efficient.
Is CTR Better than PBO or AutoOC?
This is a very tough question to answer. I say that because, if you’re unsure about doing things yourself, you could rightfully be afraid about what CTR is doing. After all, AMD should set their CPUs up correctly straight out the box, right?
Well, just hoping they “do it right” is unrealistic, as AMD needs to set the CPUs up to work well for 99% of its userbase. A utility like Clock Tuner for Ryzen is only for the mad lot of us who see the impressive standard performance and how it’s currently beating the crap out of Intel and go, “Yes, more please!” Then we go hunting for more performance on a silicon that might just not have the headroom.
Interestingly, for gaming, where single-core or only a few cores are needed, CTR might be a bit of a waste, for reasons explored directly below our old friends, the triangles.
CTR vs Curve Optimizer – My R7 5800X
At this point it is general common knowledge that the 5800X runs hot out-of-the-box. Mine definitely did, and it was frustrating. That’s why I immediately jumped to CTR, as it was what I knew. What happens by default with the 5800X (Precision Boost disabled) is it’ll just pump voltage to the core, often hitting each core at 1.49 V showing on HWiNFO. That’s simply not good, and I suspect it hits that value only because 1.5 V is a hard limit.
How much of this is having a single, fully-populated CCX versus potentially splitting the cores over two is debatable—but some 5950X users (2 fully populated CCX nodes) note hot out-of-the-box performance too. When it comes to 5950X chips, though, I suspect those CPUs are more tightly monitored from the factory to have the best silicon, so it’s not so much of an issue versus the 5800X. Not to mention, AMD codes the boost performance differently on the two CPUs.
Using my CTR example profiles, it’s interesting seeing what CPU performance you can get compared to Curve Optimizer.
For instance, when I’m playing Final Fantasy XIV, it will never utilize all 8 of my cores, despite running on a 144 Hz monitor. It usually bounces between 2 and 4 cores, but will take advantage of spreading the load at lower clock speeds. Even with my aggressive setting of P2 above, the system will go between IDLE and P2 status in 24-person raid content. As such, FFXIV plays better with my above configured CTR profiles disabled.
Now, this may change, as FFXIV is constantly being updated. If they end up doing an engine update (they last did this when I made that linked Stormblood guide a number of years back), this situation could shift.
If we take a newer game which will utilize the CPU and GPU heavily, like Cyberpunk 2077, it’s a different story. Here, with CTR, although the max FPS does not really change, my 1% low and average frame rate values come up slightly, so I actually get the appearance of smoother gameplay. While playing, the system more-or-less only goes in P2 or P1 in densely populated areas in combat. I suspect this is due to essentially locking the max frequency there, so it prevents the normal core behaviour where the core frequency will fluctuate a lot on each of the cores.
Overall, although my maximum FPS will look close (differences in the single-digit range), that bump in things like 1% lows and average FPS performance gives a nicer experience in-game. So, CTR is a win in this instance for giving that better experience while using less power.
Clock Tuner for Ryzen 2.1 – Final Thoughts
Right now, there are probably folks screaming at me for using CTR wrong. There is something to this, as (using its default settings) the program would never recommend what I currently have it set to.
However, with the aim for my system, keeping my cooling setup and multicore gaming performance in mind, I have used the ‘Tune’ function to get the setup I want. It’s still a more granular control than what you would get with PBO for Ryzen (at least on my motherboard BIOS).
My biggest gripe I have with Precision Boost Overdrive is it would constantly push so far over 1.45 V (often seeing up to 1.48 V and 1.49 V being used while monitoring in HWiNFO), probably because I have the cooling overheads (decent 280mm radiator with great thermal paste for efficient transfer… and I live in the UK).
Now, admittedly, I’d get over that magical 5 GHz mark on that, but really at what cost? As good as the motherboard is for the price, I never feel comfortable pushing so much voltage through, and the core does get very hot. Plus, I wouldn’t actually be stable when gaming. One spike in power or a sudden drop-off as a core sleeps, and the game (or worse, the system itself) would crash.
Very advanced users may or may not find it useful, as you might simply just use the tools this provides to set up your own overclock in your BIOS. On that note, although I have gone into PBO custom settings and tweaked everything from the max boost to the power limits and the curve optimizer, at least for my needs CTR does the job for me in most modern games for its ease of use and speed (relative to an advanced user manually tweaking all the settings in BIOS, or testing performance with Ryzen Master).
Reviewing Other Options – Curve Optimizer
Surprise! As I’ve hinted at all through this article, I don’t currently use CTR. I used it as my go-to with my Ryzen 5 3600 before I upgraded, so I was pretty confident with what I would get with it once I went with the 5800X.
However, as I’m someone who hates sitting still on these things, I wasn’t overly happy with my all-core performance versus single/partially loaded. Plus, I do play FFXIV a shockingly high amount in my free time, so I can’t really be constantly enabling or disabling a hardware setting just for that.
Enter Curve Optimizer.
I should note here that you can still use this without using the maximum override for the PBO boost over AMD’s coded maximum. So, in my case that is 4.85 GHz, which is interesting when the advertised boost is 4.7 Ghz. Yet, within Precision Boost settings on my motherboard, at no point do I use the override setting for the maximum boost.
If you don’t know much about how PBO and Curve Optimizer work, I’d strongly recommend watching bosmang’s guide. They’re a small YouTuber (so give them a subscribe!), but it’s honestly one of the best explanations going.
Anyway, let’s quickly get into some nerd scribblings.
On the left are the first tests with the negative curve adjustment, just starting with a simple all-core negative. Essentially, the test went until Cinebench R20 crashed. Once it did, I dialed it back to -20 all-core, and fiddled around with my power settings, before settling on PPT 170, TDC 150, and EDC 120.
The right part of the image is then my further testing. Knowing that it was most likely my priority cores (already the most efficient) falling down for simply having such low voltage, I left those at -20 and started working the rest. As you can see, I did get down to -30 with all other cores, with a blistering 6219 Cinebench R20 score. Win!
Except… at this point the system crashes when testing for proper stability by pushing with Prime95 and/or OCCT. So, not actually stable.
At this point, I jumped back to -27 and then stopped writing in my notebook as it would keep crashing. I dialed it all the way back to -20 all-core, and then it was rock stable. Curious, right?
Well, I’m going to bring in a new tool in CTR 2.1 here to give a little insight, namely the boost tester:
I have taken just a part of this data and posted it above for you. This gives an interesting insight into best/worst cores. C01 is my worst, as it needs a lot of voltage for the lowest frequency, with C08 being my best with highest boost for lowest voltage.
Now, on paper, that would mean to get perfect curve control I would have the best cores on a lower negative value compared to the worst cores to balance things out, right?
Well, I think a lot of what you’re seeing here is down to the single CCX design of the 5800X. On its bigger brothers, I have seen a lot more variation on the curve values people can enter. However, with this and the 5600X, a lot of folks set it to somewhere between negative 15 to 20 and have to call it a day unless you hit the silicon lottery.
What did my -20 on all cores get me then? Well, for your quick comparison, here are my average Cinebench R20 scores, taken over 6 average runs:
Overall, this is the multi-core comparison:
Cinebench R20 Scores
So yes, using the curve optimizer does not quite get us to the heady heights of CTR 2.1. However, the advantage I do get is that I get a full boost behaviour by using a standard AMD tool, rather than locking off the all-core frequency at various load states.
All this really does, though, is bring the 5800X in line with how its fellow Zen 3 CPUs perform, so there’s nothing really outrageous like seeing 5+ GHz single-core boosts.
Max voltage is now 1.45 V when running all-core 4.85 GHz, and under load in Cinebench it’s 1.31-1.35 V and 4.625-4.7 GHz.
Due to all of this, at least for me and my use case, Curve Optimizer wins out over CTR 2.1. Although I don’t get the high PX profile boost on single-core performance, I’m getting a much balanced system overall.
There are some links below for those that want more thorough or less casual resources on this topic, but let me know in the comments about your own experiences!
Although I have taken in a lot of information around boost performance on Zen 3 since launch, I only have my own example to show for this. So, leave a comment about your successes (or failures) when using CTR 2.1 and/or Precision Boost with Curve Optimizer, as it will be interesting to see different perspectives on this!
- 1usmus Patreon – A way to support the developer of Clock Tuner for Ryzen, while also getting access to the Discord and being able to see the latest updates.
- 1sumus Guide – The big text guide to CTR by the creator of the software. Well worth it, to understand what is going on when you try to overclock for the first time.
- CTR walkthrough video – Although older now, this gives a good overview to the various numbers you’re seeing on CTR.
- 1usmus overclock post – Along with links to the above, this provides links to submitted user data.
- Bosmang’s Guide to PBO 2.0 and Curve Optimizer – A great video to aid in understanding how this feature set works.
The CTR 2.1 Public Launch
Just popping a quick update to say that CTR 2.1 is now available to the public.
As I am sure you’re dying to know, these are my current stable profiles in RC5:
You can find 1usmus’ guide for CTR 2.1 here, which includes this nice summary video if you’ve used versions of CTR before.
Alternatively, if you’re feeling bold, you can just download it here.
As you’re all dying to know, my R20 score was multi-core 6037pts and 634pts single core.
Below is some of the CPU die temps and power information.
Let me know how you’re finding the launch, if you’re getting involved with some tinkering!