SkatterBencher #78: Ryzen 7 9700X Overclocked to 5860 MHz
We overclock the AMD Ryzen 7 9700X to 5860 MHz with the ASUS ROG Crosshair X670E Hero motherboard and AIO water cooling.
I do this by leveraging asynchronous eCLK to stretch the V/F curve beyond the Precision Boost limit. Of course, that also requires finetuning with the new Curve Shaper. In this blog post, I break down the Ryzen 7 9700X tuning process into five unique overclocking strategies for beginner and advanced overclockers.
- First, we enable Precision Boost Overdrive 2 and EXPO.
- Second, we overclock and tune with the Precision Boost Overdrive 2 toolkit
- Third, we rely on Curve Optimizer to undervolt our CPU
- Fourth, we tune the memory timings
- Lastly, we try to maximize performance by leveraging asynchronous eCLK.
However, before we jump into overclocking, let us quickly review the hardware and benchmarks used in this video.
Table of Contents
AMD Ryzen 7 9700X: Introduction
The AMD Ryzen 7 9700X is part of AMD’s Zen 5-based Ryzen 9000 desktop processor product line codenamed “Granite Ridge.” The Granite Ridge processors were introduced on June 2, 2024, during Computex 2024.
The Ryzen 7 9700X succeeds the 8-core Zen 4 Ryzen 7 7700X which we overclocked in SkatterBencher #47. It has a base clock of 3.8 GHz and a listed boost frequency of up to 5.5 GHz. Unlike its predecessor, its TDP is capped at 65W.
Platform Overview
The system we’re overclocking today consists of the following hardware.
Item | SKU | Price (USD) |
CPU | AMD Ryzen 7 9700X | 359 |
Motherboard | ASUS ROG Crosshair X670E Hero | 579 |
CPU Cooling | Enermax LIQMAXFLO SR 360 | 125 |
Memory | G.SKILL Trident Z5 DDR5-6400 32GB | 110 |
Power Supply | XPG Fusion 1600W Titanium | 600 |
Graphics Card | ASUS ROG Strix RTX 2080 TI | 490 |
Storage | AGI 512GB NVMe M.2 Gen3 | 75 |
Chassis | Open Benchtable V2 | 200 |
Telemetry | BENCHLAB | 200 |
Benchmark Software
We use Windows 11 and the following benchmark applications to measure performance and ensure system stability.
BENCHMARK | LINK |
Pyprime 2.0 | https://github.com/mbntr/PYPrime-2.x |
7-Zip 19.0 | https://www.7-zip.org/ |
IndigoBench | https://www.indigorenderer.com/indigobench |
Geekbench 6 | https://www.geekbench.com/ |
Cinebench 2024.1 | https://www.maxon.net/en/cinebench/ |
CPU-Z | https://www.cpuid.com/softwares/cpu-z.html |
V-Ray 6 | https://www.cpuid.com/softwares/cpu-z.html |
Corona Benchmark | https://corona-renderer.com/benchmark |
AI-Benchmark | https://ai-benchmark.com/ |
3DMark CPU Profile | https://www.3dmark.com/ |
3DMark Night Raid | https://www.3dmark.com/ |
3DMark Solar Bay | https://www.3dmark.com/ |
Returnal | https://store.steampowered.com/app/1649240/Returnal/ |
Shadow of the Tomb Raider | https://store.steampowered.com/app/750920/Shadow_of_the_Tomb_Raider_Definitive_Edition/ |
Final Fantasy XV | http://benchmark.finalfantasyxv.com/na/ |
OCCT | https://www.ocbase.com/ |
AIDA64 | https://www.aida64.com/ |
AMD Ryzen 7 9700X: Stock Performance
Before starting overclocking, we must check the system performance at default settings. The default Precision Boost 2 parameters for the Ryzen 7 9700X are as follows:
- PPT: 88 W
- TDP: 65 W
- PCC: 508 W
- TDC CPU: 75 A
- EDC CPU: 150 A
- THM: 95 C (Core, GPU, SOC)
- VID: 1.40 V
- FMAX: 5550 MHz
- FIT: 1991.1
Here is the benchmark performance at stock:
- PYPrime 32B: 222.648 seconds
- 7-Zip: 119,730 mips
- IndigoBench (Bedroom): 2.804 MSamples/sec
- Geekbench 6 (single): 3,365 points
- Geekbench 6 (multi): 16,064 points
- Cinebench 2024 Single: 134 points
- Cinebench 2024 Multi: 1,187 points
- CPU-Z V17.01.64 Single: 887.1 points
- CPU-Z V17.01.64 Multi: 8,565.1 points
- V-Ray 5: 23,959 samples
- Corona 10: 7.434 MRays/s
- AI Benchmark: 6,108 points
- 3DMark Night Raid: 82,628 marks
- 3DMark Solar Bay: 68,483 marks
- Returnal: 108 fps
- Tomb Raider: 194 fps
- Final Fantasy XV: 174.50 fps
Here are the 3DMark CPU Profile scores at stock:
- CPU Profile 1 Thread: 1,292 pts
- CPU Profile 2 Threads: 2,573 pts
- CPU Profile 4 Threads: 5,018 pts
- CPU Profile 8 Threads: 8,201 pts
- CPU Profile 16 Threads: 9,454 pts
- CPU Profile Max Threads: 9,453 pts
Here are the AIDA64 memory benchmark scores at stock:
- Memory Read Bandwidth: 51,984 MB/sec
- Memory Write Bandwidth: 63,089 MB/sec
- Memory Copy Bandwidth: 49,161 MB/sec
- Memory Latency: 78.9 ns
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 4105 MHz with 0.957 volts. The average CPU temperature is 56.7 degrees Celsius. The average CPU package power is 87.8 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 4498 MHz with 1.022 volts. The average CPU temperature is 56.7 degrees Celsius. The average CPU package power is 87.8 watts.
Of course, we can increase the maximum power consumption limit using Precision Boost Overdrive. That’s what we’ll do in our first overclocking strategy.
However, before we get going, make sure to locate the CMOS Clear button. Pressing the Clear CMOS button will reset all your BIOS settings to default, which is helpful if you want to start your BIOS configuration from scratch. The Clear CMOS button is located on the back I/O of the motherboard.
OC Strategy #1: PBO + EXPO
In our first overclocking strategy, we simply take advantage of enabling AMD Precision Boost Overdrive 2 and AMD EXPO.
Precision Boost Overdrive 2
With the launch of Zen 5, AMD introduced a further improved version of the Precision Boost Overdrive 2 overclocker’s toolkit, allowing for manual tuning of the parameters affecting the Precision Boost 2 frequency boost algorithm.
The Precision Boost Overdrive 2 toolkit for Zen 5 Ryzen processors includes the overclocking knobs from Zen+ (PPT, TDC, EDC), Zen 2 (Boost Override and Scalar), Zen 3 (Curve Optimizer), and the newly announced Curve Shaper for Zen 5.
There are essentially 3 levels of Precision Boost Overdrive
- AMD’s stock values, which can be set by disabling PBO
- The motherboard vendor values, which are programmed into the BIOS to match the motherboard VRM specification and can be set by enabling PBO
- Custom values, which can be programmed by the end-user
In this overclocking strategy, we’re just enabling Precision Boost Overdrive, whereas, in the following strategies, we’ll explore tuning the parameters. By enabling Precision Boost Overdrive, we rely on the motherboard pre-programmed PBO parameters. We find that the following values have changed:
Increasing the PPT and, to a lesser extent, the TDC and EDC limit will help unleash the frequency in multi-threaded workloads previously limited by the PPT.
EXPO – Extended Profiles for Overclocking
EXPO stands for AMD Extended Profiles for Overclocking. It is an AMD technology that enables ubiquitous memory overclocking for AMD platforms supporting DDR5 memory.
EXPO allows memory vendors such as G.SKILL to program higher performance settings onto the memory sticks. If the motherboard supports EXPO, you can enable higher performance with a single BIOS setting. So, it saves you lots of manual configuration.
BIOS Settings & Benchmark Results
Upon entering the BIOS
- Go to the Extreme Tweaker menu
- Set Ai Overclock Tuner to EXPO II
- Enter the Precision Boost Overdrive submenu
- Set Precision Boost Overdrive to enabled
Then save and exit the BIOS.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +4.04%
- PYPrime 32B: +14.42%
- 7-Zip: +8.90%
- IndigoBench (bedroom): +9.20%
- Geekbench 6 (single): +1.01%
- Geekbench 6 (multi): +13.42%
- Cinebench R23 Single: +1.49%
- Cinebench R23 Multi: +11.54%
- CPU-Z V17.01.64 Single: +0.15%
- CPU-Z V17.01.64 Multi: +6.84%
- V-Ray 5: +14.06%
- Corona 10: +12.84%
- AI Benchmark: +18.07%
- 3DMark Night Raid: +4.50%
- 3DMark Solar Bay: +1.72%
- Returnal: +1.85%
- Tomb Raider: +0.52%
- Final Fantasy XV: +3.00%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +0.46%
- CPU Profile 2 Threads: +0.43%
- CPU Profile 4 Threads: +0.18%
- CPU Profile 8 Threads: +6.66%
- CPU Profile 16 Threads: +11.51%
- CPU Profile Max Threads: +11.52%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +19.41%
- Memory Write Bandwidth: +36.62%
- Memory Copy Bandwidth: +20.25%
- Memory Latency: +12.39%
Despite the Ryzen 7 9700X having only 8 cores, the performance is restricted by its maximum power to 65W. By enabling PBO, we can easily double the power budget in all-core workloads. Combined that with enabling higher memory speeds and it translates into significant performance gains across the board. The Geomean performance improvement is +4.04%, and we get a maximum improvement of +18.07% in the AI Benchmark.
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5061 MHz with 1.161 volts. The average CPU temperature is 95.1 degrees Celsius. The average CPU package power is 169.4 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5238 MHz with 1.257 volts. The average CPU temperature is 95.1 degrees Celsius. The average CPU package power is 173.4 watts.
The boost frequency at 1 active thread is about 5549 MHZ and the average boost frequency gradually trails off to 5179 MHz when all cores are active. All cores can boost to over 5.55 GHz in single-threaded workloads.
OC Strategy #2: PBO Tuned
In our second overclocking strategy, we tune the CPU’s Precision Boost dynamic frequency technology using the Precision Boost Overdrive 2 toolkit.
PBO 2: Fmax Boost Override
Fused maximum frequency, or Fmax, is one of the Precision Boost 2 infrastructure limiters constraining the CPU performance. The limiter determines the maximum allowed processor frequency across all CPU cores inside your CPU.
Boost Clock Override or Fmax Override is one of the tools available in the PBO 2 overclocker’s toolkit. It allows the user to override the arbitrary clock frequency limit between -1000 MHz and +200 MHz in steps of 25 MHz. It’s important to note that the Fmax override only adjusts the upper ceiling of the frequency and doesn’t act as a frequency offset. Ultimately, the Precision Boost 2 algorithm still determines the actual operating frequency.
The programmed Fmax of the Ryzen 7 9700X is 5550 MHz. So, with a +200 Fmax Boost Override, the new maximum boost frequency is 5750 MHz.
PBO 2: Scalar
Scalar is a tool that allows the user to override the warranted silicon stress level, or FIT, to achieve higher frequency. You can adjust the maximum allowed FIT level to 10 times higher than the factory-fused limit. While the tool offers precise granularity, typically, you’ll find the available options to range between 1X and 10X in steps of 1 multiple.
The effect of increasing Scalar is that the Precision Boost algorithm more aggressively pursues higher voltages as it is less concerned with CPU lifespan. The tool’s relevance shifts from architecture to architecture as the FIT is only one of the Precision Boost infrastructure limiters managing the maximum allowed voltage.
For the Zen 5 Granite Ridge processors, it appears Scalar is making a comeback in the overclocking strategies because the chips are very voltage-limited. The programmed VID limit is 1.4V, though we see slight excursions above that in really light single-threaded workloads. When all 8 cores are active, the maximum voltage is 1.35V.
The programmed FIT value of this particular Ryzen 7 9700X is 1991.1. So, with a 10X scaler, the new FIT value is 19911. We find that in an all-core workload, the maximum voltage increased from 1.35V to 1.375V. That’s not a big increase, but in voltage-constraint scenarios, every little bit helps!
BIOS Settings & Benchmark Results
Upon entering the BIOS
- Go to the Extreme Tuner menu
- Set Ai Overclock Tweaker to EXPO II
- Switch to the Advanced menu
- Enter the AMD Overclocking submenu and click accept
- Enter the Precision Boost Overdrive submenu
- Set Precision Boost Overdrive to Advanced
- Set PBO Limits to Motherboard
- Set Precision Boost Overdrive Scalar Ctrl to Manual
- Set Precision Boost Overdrive Scalar to 10X
- Set CPU Boost Clock Override to Enabled (Positive)
- Set Max CPU Boost Clock Override to 200
- Enter the Precision Boost Overdrive submenu
Then save and exit the BIOS.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +5.07%
- PYPrime 32B: +15.15%
- 7-Zip: +9.71%
- IndigoBench (bedroom): +10.56%
- Geekbench 6 (single): +1.49%
- Geekbench 6 (multi): +14.31%
- Cinebench R23 Single: +2.99%
- Cinebench R23 Multi: +11.96%
- CPU-Z V17.01.64 Single: +1.27%
- CPU-Z V17.01.64 Multi: +7.44%
- V-Ray 5: +14.20%
- Corona 10: +13.94%
- AI Benchmark: +18.22%
- 3DMark Night Raid: +4.72%
- 3DMark Solar Bay: +1.73%
- Returnal: +1.85%
- Tomb Raider: +0.52%
- Final Fantasy XV: +3.03%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +1.24%
- CPU Profile 2 Threads: +0.97%
- CPU Profile 4 Threads: +0.46%
- CPU Profile 8 Threads: +7.27%
- CPU Profile 16 Threads: +11.76%
- CPU Profile Max Threads: +11.91%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +19.37%
- Memory Write Bandwidth: +36.50%
- Memory Copy Bandwidth: +22.36%
- Memory Latency: +15.69%
Adding a little bit extra frequency and voltage headroom doesn’t appear to have too big of an impact in most benchmarks as only single-threaded workloads show signs of improvement. The Geomean performance improvement is +5.07%, and we get a maximum improvement of +18.22% in the AI Benchmark.
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5052 MHz with 1.155 volts. The average CPU temperature is 95.1 degrees Celsius. The average CPU package power is 168.8 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5236 MHz with 1.249 volts. The average CPU temperature is 95.1 degrees Celsius. The average CPU package power is 172.8 watts.
The boost frequency at 1 active thread is about 5566 MHZ and the average boost frequency gradually trails off to 5225 MHz when all cores are active. Two out of eight cores can boost to over 5.7 GHz in single-threaded workloads.
OC Strategy #3: PBO Curve Optimized
In our third overclocking strategy, we undervolt the CPU using the Curve Optimizer tool.
PBO 2: Curve Optimizer
Curve Optimizer has been one of the most important overclocking tools of the Precision Boost Overdrive 2 toolkit. It is most commonly known for its undervolting capabilities, but on AMD Ryzen CPUs, it kind of also works as an overclocking tool.
To explain how it works, Let’s start with the basics: the voltage-frequency curve.
Simply put: a voltage-frequency curve describes the relationship between an operating frequency and the voltage required to operate at that frequency. Every modern SOC has a factory-fused voltage-frequency curve and uses this to dynamically adjust the power consumption depending on the workload needs.
Here’s the default voltage-frequency curve of my Ryzen 7 9700X processor. This curve represents the average curve of the eight cores inside each CCD because, actually, each of the eight cores inside the CCD has its own curve. We can immediately make a simple and redundant observation: the higher the frequency, the more voltage is required. For example: we only need 1.1V for a frequency of about 4.9 GHz. However, we need over 1.3V for a frequency of more than 5.5 GHz.
We also notice that the maximum allowed voltage is 1.35V when all cores are active. The Precision Boost 2 algorithm utilizes the V/F curve to find what’s the maximum possible frequency at 1.35V. With the default curve, that’s about 5520 MHz. However, the programmed maximum frequency for the Ryzen 7 9700X is actually 5550 MHz. So, we miss out on about 25 MHz. And, as I showed in the previous OC Strategy, we can use the Fmax Boost Override tool to increase the Fmax by another 200 MHz. So, we’re really missing out on about 225 MHz.
If we set a Curve Optimizer to negative 30, we can shift the entire voltage-frequency curve along the voltage axis. And, suddenly, we need less voltage for every operating frequency. For example, for 5 GHz we needed about 1.126V by default, but with a -30 Curve Optimizer, now we only need 1.030V!
Moreover, the frequency is also boosting higher! The highest frequency with all eight cores active has increased by 180 MHz to almost 5700 MHz. These higher frequencies are now possible because our Curve Optimizer undervolting pulled them below the 1.35V threshold.
Curve Optimizer is a powerful tuning tool. It’s simple but not simplistic. And the more you dig into the details of what it does, the more intricate it becomes to figure out how to apply it in a daily overclock.
The traditional overclocking approach for AMD Ryzen CPUs is to undervolt by setting a negative curve optimizer. That helps in two ways.
- First, undervolting lowers the operating voltage, temperature, and power consumption.
- Second, as a consequence, the Precision Boost 2 algorithm can leverage the additional headroom to boost to higher frequencies.
So, you tend to get lower temperatures and extra performance. It’s a win-win. However, there are a couple of caveats to tuning with Curve Optimizer:
- Curve Optimizer impacts the entire voltage-frequency curve. So, it affects stability across the entire range of operating frequencies: from 600 to 6000 MHz.
- The same Curve Optimizer value impacts differently across the curve
If you’re lucky, your CPU’s undervolt margin matches how Curve Optimizer offsets the voltage across the curve. Then you’ll maximize the performance gains. But if you’re unlucky, and one part of your CPU’s V/F curve has a lot less margin, then your Curve Optimizer tuning journey will be a rough ride.
Curve Optimizer is available on a per CPU, per CCD, and per Core basis.
Curve Optimizer Tuning Process
The manual tuning process for Curve Optimizer can become quite convoluted since it affects the CPU core voltage in all scenarios ranging from very light single-threaded workloads to heavy all-core workloads.
In the past, I typically spent a lot of time on per-core curve optimization. With this CPU, however, I could simply set an all-core curve optimizer of -35 and it maxed out every core’s single-threaded Fmax. So, there wasn’t much finetuning to be done.
BIOS Settings & Benchmark Results
Upon entering the BIOS
- Go to the Extreme Tweaker menu
- Set Ai Overclock Tuner to EXPO II
- Switch to the Advanced menu
- Enter the AMD Overclocking submenu and click accept
- Enter the Precision Boost Overdrive submenu
- Set Precision Boost Overdrive to Advanced
- Set PBO Limits to Motherboard
- Set Precision Boost Overdrive Scalar Ctrl to Manual
- Set Precision Boost Overdrive Scalar to 10X
- Set CPU Boost Clock Override to Enabled (Positive)
- Set Max CPU Boost Clock Override to 200
- Enter the Curve Optimizer submenu
- Set Curve Optimizer to All Cores
- Set All Core Curve Optimizer Sign to Negative
- Set All Core Curve Optimizer Magnitude to 35
- Set Curve Optimizer to All Cores
- Enter the Precision Boost Overdrive submenu
Then save and exit the BIOS.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +7.91%
- PYPrime 32B: +15.20%
- 7-Zip: +12.64%
- IndigoBench (bedroom): +13.91%
- Geekbench 6 (single): +3.83%
- Geekbench 6 (multi): +15.82%
- Cinebench R23 Single: +5.22%
- Cinebench R23 Multi: +15.75%
- CPU-Z V17.01.64 Single: +3.62%
- CPU-Z V17.01.64 Multi: +11.67%
- V-Ray 5: +18.58%
- Corona 10: +17.69%
- AI Benchmark: +21.77%
- 3DMark Night Raid: +7.64%
- 3DMark Solar Bay: +2.04%
- Returnal: +1.85%
- Tomb Raider: +4.64%
- Final Fantasy XV: +3.46%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +3.72%
- CPU Profile 2 Threads: +3.65%
- CPU Profile 4 Threads: +4.32%
- CPU Profile 8 Threads: +10.32%
- CPU Profile 16 Threads: +16.13%
- CPU Profile Max Threads: +16.47%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +19.35%
- Memory Write Bandwidth: +37.67%
- Memory Copy Bandwidth: +21.78%
- Memory Latency: +12.23%
Undervolting with Curve Optimizer is a Ryzen overclocker’s best friend and has been for a long time. It provides this Ryzen 7 9700X with a nice frequency and performance bump. The Geomean performance improvement is +7.91%, and we get a maximum improvement of +21.77% in the AI Benchmark.
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5344 MHz with 1.143 volts. The average CPU temperature is 95.1 degrees Celsius. The average CPU package power is 163.8 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5508 MHz with 1.229 volts. The average CPU temperature is 95.1 degrees Celsius. The average CPU package power is 164.0 watts.
The boost frequency at 1 active thread is about 5735 MHZ and the average boost frequency gradually trails off to 5506 MHz when all cores are active. All eight cores can boost to nearly 5.8 GHz in single-threaded workloads.
OC Strategy #4: Memory Tuned
In our fourth overclocking strategy, we delve into tuning the memory subsystem performance. On AMD Granite Ridge processors, the memory subsystem consists of three major parts: the infinity fabric, the unified memory controller, and the system memory. They’re more commonly referred to as the FCLK, UCLK, and MCLK.
First-generation Ryzen overclockers know that these parts used to be tightly coupled together, but on modern Ryzen processors like the Ryzen 9 9700X, we can tune them independently. There were three things I wanted to address with the memory subsystem performance optimization.
- I want to increase the FCLK as high as possible,
- I want to run the UCLK and MCLK in sync, and
- I want to tighten up the memory timings.
Infinity Fabric Tuning
The Fabric frequency, or FCLK, is generated by the SOC PLL, derived from a 100 MHz reference clock input. The reference clock is multiplied by the FCLK ratio, which you can configure in the BIOS.
The standard operating frequency of the infinity fabric is 1800 MHz, but on many boards, you’ll find it runs 2100 MHz when Precision Boost Overdrive is enabled. While it can run independently from any other clock domain, it is still suggested that running the fabric clock in sync with the system memory and memory controller frequency provides the optimal performance point.
That said, it doesn’t seem there’s much overclocking headroom beyond 2100 MHz. I managed to set 2200 MHz for this overclocking strategy, however any steps above that couldn’t boot reliably. Not even with voltage adjustments.
Speaking of voltage: the infinity fabric voltage is provided by the VDDG voltage supply, derived via an integrated voltage regulator from the VDDCR_MISC voltage rail. There is a total of two VDDG voltage rails available for manual adjustment:
- CCD0-CCD VDDG: signals sent from CCD0 to IOD are sent at this voltage
- CCD0-IOD VDDG: signals sent from IOD to CCD0 are sent at this voltage
Note that the VDDG voltage does not adjust automatically with VDDCR_MISC. So, if you need to increase VDDG, for example, to support higher memory frequency, you need to change it manually.
Memory Controller Tuning
AMD Granite Ridge has two DDR5 Unified Memory Controllers, or UMC in short and each provides two 32-bit memory channels. The memory controllers are located in the IO die and are identical to the memory controllers on Ryzen 7000 “Raphael” processors. (Note that Ryzen 8000 “Hawk Point” processors actually have a newer memory controller!).
The Unified Memory Controller frequency, or UCLK, is derived from the UMCCLK, one of the SOC PLLs. The UMCCLK is driven by a 100 MHz reference clock derived from either an internal or external clock generator. The memory controller frequency is tied directly to the system memory frequency. It can run either at the same or half its frequency. At default, the memory controller runs at the same frequency as the system memory at 2400 MHz. However, we find that when enabling EXPO, often the motherboard auto-rules will drop the memory controller frequency to half the memory frequency.
We can easily force the memory controller to run at the same frequency as the system memory by setting UCLK DIV1 Mode to UCLK=MEMCLK. I also suggest enabling SoC/Uncore OC mode to disable all power-saving technologies affecting the clock frequencies of the memory subsystem.
The VDDCR_SOC voltage rail provides the external power for multiple internal voltage regulators on SOC for the various IP blocks, including the memory controller. The VDDIO_MEM voltage rail is related as it provides the external power for the VDDP DDR5 bus signaling.
It is essential to know that the VDDCR_SOC voltage must always be lower than VDDIO_MEM_S3 + 100mV. The default VDDCR_SOC voltage is 1.05V and can be set to 1.30V under ambient conditions. However, we need LN2 mode enabled for higher voltages.
System Memory Timings Tuning
The last piece of the memory subsystem performance tuning is tuning the memory timings. For this part, I rely in part on ASUS’ Memory Presets technology and in part on previous SkatterBencher overclocking guides.
ASUS Memory Presets
ASUS Memory Presets is an ASUS overclocking technology that provides a selection of memory-tuning presets for specific memory ICs. The presets will adjust the memory timings and voltages.
The ROG Crosshair X670E Hero motherboard sports fourteen memory profiles for a variety of memory ICs and configurations. Since we’re interested in simply adjusting the memory timings, we can try the Hynix 6400MHz 1.4V 2x16GB SR preset. Note that I stick with the EXPO primary timings and only leverage the memory preset for the secondary and tertiary sub-timings.
Memory Timings Tuning
Regular viewers will know I tried this memory profile in Skatterbencher #75 when overclocking the Radeon 740M integrated graphics. In that guides, I had to adjust the tRAS from 36 to 38 to get rid of graphical errors with the integrated graphics. Otherwise, the configuration was stable.
However, for this system, the memory is stable for the benchmarks but doesn’t pass the OCCT memory stability test. So, I wouldn’t consider this a stable system. That said, it serves a useful purpose for this guide to illustrate the performance improvements from tuning memory timings.
I’ll figure out the root cause of the instability for later guides.
After the tuning, our AIDA64 performance improves quite significantly. We got about +20% extra performance by enabling EXPO and added another 16% on top of that by tuning the memory timings.
BIOS Settings & Benchmark Results
Upon entering the BIOS
- Go to the Extreme Tweaker menu
- Set Ai Overclock Tuner to EXPO II
- Enter the DRAM Timing Control submenu
- Enter the Memory Presets submenu
- Select Load Hynix 6400MHz 1.4V 2x16GB SR and click OK
- Leave the Memory Presets submenu
- Set Tcl, Trccd, and Tras according to the EXPO kit
- Set Tras to 38
- Enter the Memory Presets submenu
- Leave the DRAM Timing Control submenu
- Switch to the Advanced menu
- Enter the AMD Overclocking submenu and click accept
- Enter the DDR and Infinity Fabric Frequency/Timings submenu
- Enter the Infinity Fabric Frequency and Dividers submenu
- Set Infinity Fabric Frequency and Dividers to 2200 MHz
- Set UCLK DIV1 MODE to UCLK=MEMCLK
- Leave the Infinity Fabric Frequency and Dividers submenu
- Enter the Infinity Fabric Frequency and Dividers submenu
- Leave the DDR and Infinity Fabric Frequency/Timings submenu
- Enter the Precision Boost Overdrive submenu
- Set Precision Boost Overdrive to Advanced
- Set PBO Limits to Motherboard
- Set Precision Boost Overdrive Scalar Ctrl to Manual
- Set Precision Boost Overdrive Scalar to 10X
- Set CPU Boost Clock Override to Enabled (Positive)
- Set Max CPU Boost Clock Override to 200
- Enter the Curve Optimizer submenu
- Set Curve Optimizer to All Cores
- Set All Core Curve Optimizer Sign to Negative
- Set All Core Curve Optimizer Magnitude to 35
- Set Curve Optimizer to All Cores
- Leave the Curve Optimizer submenu
- Leave the Precision Boost Overdrive submenu
- Enter the SoC/Uncore OC Mode submenu
- Set SoC/Uncore OC Mode to Enabled
- Leave the SoC/Uncore OC Mode submenu
- Enter the SoC Voltage submenu
- Set SoC Voltage to 1300
- Enter the DDR and Infinity Fabric Frequency/Timings submenu
Then save and exit the BIOS.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +10.67%
- PYPrime 32B: +40.25%
- 7-Zip: +17.36%
- IndigoBench (bedroom): +17.30%
- Geekbench 6 (single): +5.59%
- Geekbench 6 (multi): +23.10%
- Cinebench R23 Single: +8.21%
- Cinebench R23 Multi: +21.57%
- CPU-Z V17.01.64 Single: +3.66%
- CPU-Z V17.01.64 Multi: +11.66%
- V-Ray 5: +23.97%
- Corona 10: +21.07%
- AI Benchmark: +28.95%
- 3DMark Night Raid: +9.09%
- 3DMark Solar Bay: +2.63%
- Returnal: +2.78%
- Tomb Raider: +5.67%
- Final Fantasy XV: +4.62%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +3.87%
- CPU Profile 2 Threads: +3.77%
- CPU Profile 4 Threads: +4.72%
- CPU Profile 8 Threads: +11.29%
- CPU Profile 16 Threads: +16.48%
- CPU Profile Max Threads: +16.41%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +34.28%
- Memory Write Bandwidth: +50.12%
- Memory Copy Bandwidth: +33.97%
- Memory Latency: +30.63%
Tuning the memory subsystem has a surprisingly large impact on the benchmark performance. The standout performance improvement is PYPrime, where we see a maximum improvement of +40.25% over stock. But that’s very much a memory benchmark. However, we also see a performance uplift of 5 to 10 percentage points in other multithreaded benchmarks such as Geekbench and AI Benchmark. The Geomean performance improvement is +10.67%.
OC Strategy #5: Asynchronous eCLK
In our fifth and latest overclocking strategy, we take advantage of the return of the ECLK mode. ECLK stands for external clock and is precisely what the term suggests: an external clock generator. With the external clock generator, we can warp the Precision Boost V/F curve to achieve higher frequencies.
Granite Ridge ECLK Overview
The standard Granite Ridge platform has a 48 MHz crystal input to the integrated CGPLL clock generator. The CGPLL then generates a 48 MHz clock for the USB PLL and a 100 MHz reference clock for the FCH, which contains the CCLK PLL for the CPU cores and several SOC PLLs. The external clocks are inputs to the FCH. There you can configure how you want to use the external clocks. In addition to the standard internal CGPLL, Granite Ridge supports up to two external clock modes. They’re called eCLK0 Mode and eCLK1 Mode.
In eCLK0 Mode, an external 100MHz reference clock is used for both the CPU and SOC PLLs. In other words, it’s a reference clock that affects the CPU core clocks and the PCIe and SATA clocks.
In eCLK1 Mode, there are two distinct external 100MHz reference clocks. One clock provides the 100MHz input for the CPU PLL, and another provides the 100MHz reference clock for the SOC PLLs.
The overclocking strategy with ECLK is the polar opposite of what we’re used to with Ryzen CPUs. OC Strategy #3 shows that Ryzen overclocking is typically done with a negative curve optimizer. That pushes the Precision Boost algorithm to reach higher boost frequencies.
With ECLK, we still build on the factory-fused VFT curve but adjust the frequency by adjusting the reference clock. A key challenge with using ECLK is that we’re applying a linear stretch on a non-linear V/F curve. Let me explain with an example.
Here you can see two V/F curves of the Ryzen 7 9700X: the default curve and the one from OC Strategy #3 with the -35 curve optimizer. We can see the law of diminishing marginal returns: the higher the frequency, the less additional frequency with every step of additional voltage.
For example: on the default curve, increasing the voltage from 1.1V to 1.2V gives an extra 350 MHz, but increasing from 1.2V to 1.3V only gives an extra 150 MHz. The law of diminishing returns also applies to our undervolt. With a -35 curve optimizer we get an extra 450 MHz at 1.1V but only +150 MHz at 1.3V.
If we increase the ECLK by 4.3%, setting it to 104.3 MHz, then the resulting curve looks as follows:
We can see that the frequency increases by about 200 MHz across the entire curve and doesn’t show any diminishing returns! The consequence in the real world is that we lack frequency improvement at the lower end of the curve and may have too much at the upper end of the curve.
Before Ryzen 9000, we could only try to squeeze higher frequency with a positive curve optimizer. We’d gain stability at the upper end of the curve by sacrificing frequency (and thus performance) at the lower end of the curve.
However, with Ryzen 9000 CPUs we have a new tool in the overclocking toolbox: Curve Shaper.
Curve Shaper
Curve Shaper is the newly announced tool of the Precision Boost Overdrive 2 toolkit. It was introduced alongside the Zen 5 Ryzen 9000 “Granite Ridge” processors. I had an in-depth look at the tool in a different blog post on this channel.
In theory, it seems Curve Shaper is pretty straightforward: you get fifteen additional tunable points across the V/F curve. But the devil is in the details because AMD’s Precision Boost 2 technology doesn’t really work with V/F points. So, instead of getting a list of specific tunable V/F points, we get five regions and three temperatures:
Regions:
- Minimum frequency (“idle”)
- Low frequency (“background tasks”)
- Medium frequency (“high core count workloads”)
- High frequency (“gaming workloads”)
- Max frequency (“1T workloads”)
Temperatures:
- Low temperature (“idle”) = -5°C
- Medium temperature (“1T gaming workloads”) = 50°C
- High temperature (“stress test workloads”) = 90°C
The regions have a bit of a vague terminology and are not clearly defined. I will get back to that in a minute. The temperature points are more straightforward as they’re defined as -5, 50, and 90 degrees Celsius.
The idea of Curve Shaper is that you can adjust the voltage-frequency curve in more specific areas than with Curve Optimizer. For example, you could say that you only want to undervolt in the High Frequency region for temperatures between 50 to 90 degrees Celsius. That would be a common approach to increase the operating frequency in gaming workloads.
In our case, we want to claw back the undervolting potential at the lower end of the voltage-frequency curve. For this purpose, we can use the low and medium frequency shaper points and apply a negative shaper magnitude. When we set the values to -30, this is what happens:
Thanks to the different Curve Shaper points, we’ve successfully returned to our aggressive undervolt in the lower regions of the V/F curve. However, we maintain the voltage at the upper end of the curve to ensure stability at the highest frequencies.
This is a perfect illustration of the strength of Curve Shaper.
ECLK Tuning Process
The manual tuning process for eCLK tuning can become quite convoluted since it affects the CPU core stability in all scenarios ranging from very light single-threaded workloads to heavy all-core workloads.
My ECLK tuning process for this Ryzen 7 9700X was as follows.
- First, I try to find the maximum stable frequency in all core workloads
- Disable Fmax boost override
- Increase Async ECLK
- Check stability with OCCT in light, SSE, and AVX2 workloads
- Second, I try to undervolt the lower end of the V/F curve as much as possible
- Low frequency
- Medium frequency
- Third, I try to increase the maximum frequency in 1T workloads
- Increase the Fmax boost override
As usual, the requirement for stability is that we pass all benchmarks and OCCT stability tests.
For my system, I could run the OCCT memory test with all cores at 105.5 MHz yielding 5.8 GHz. However, the system crashed when trying the stability tests. So, I had to settle for 104.3 MHz.
The undervolting with Curve Shaper went exceptionally well and I could set both the low and medium frequency shaper magnitude to -30.
Then, lastly, I could increase the Fmax Boost Override to +200. That should give us a theoretical Fmax of 5997.25 MHz. However, keep in mind that there’s a 1.4V Precision Boost voltage limitation at idle and 1.375V under load. So, the maximum idle frequency we actually get is 5860 MHz.
BIOS Settings & Benchmark Results
Upon entering the BIOS
- Go to the Extreme Tweaker menu
- Set Ai Overclock Tuner to EXPO II
- Set eCLK Mode to Asynchronous mode
- Set BCLK2 Frequency to 104.30
- Enter the DRAM Timing Control submenu
- Enter the Memory Presets submenu
- Select Load Hynix 6400MHz 1.4V 2x16GB SR and click OK
- Leave the Memory Presets submenu
- Set Tcl, Trccd, and Tras according to the EXPO kit
- Set Tras to 38
- Enter the Memory Presets submenu
- Leave the DRAM Timing Control submenu
- Switch to the Advanced menu
- Enter the AMD Overclocking submenu and click accept
- Enter the DDR and Infinity Fabric Frequency/Timings submenu
- Enter the Infinity Fabric Frequency and Dividers submenu
- Set Infinity Fabric Frequency and Dividers to 2200 MHz
- Set UCLK DIV1 MODE to UCLK=MEMCLK
- Leave the Infinity Fabric Frequency and Dividers submenu
- Enter the Infinity Fabric Frequency and Dividers submenu
- Leave the DDR and Infinity Fabric Frequency/Timings submenu
- Enter the Precision Boost Overdrive submenu
- Set Precision Boost Overdrive to Advanced
- Set PBO Limits to Motherboard
- Set Precision Boost Overdrive Scalar Ctrl to Manual
- Set Precision Boost Overdrive Scalar to 10X
- Set CPU Boost Clock Override to Enabled (Positive)
- Set Max CPU Boost Clock Override to 200
- Enter the Curve Shaper submenu
- For Low and Med Frequency, set Low, Med, and High Temperature to Enable
- For low and med frequency, set Sign to Negative
- For low and med frequency, set Magnitude to 30
- Leave the Curve Shaper submenu
- Leave the Precision Boost Overdrive submenu
- Enter the SoC/Uncore OC Mode submenu
- Set SoC/Uncore OC Mode to Enabled
- Leave the SoC/Uncore OC Mode submenu
- Enter the SoC Voltage submenu
- Set SoC Voltage to 1300
- Enter the DDR and Infinity Fabric Frequency/Timings submenu
Then save and exit the BIOS.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +11.15%
- PYPrime 32B: +40.13%
- 7-Zip: +17.83%
- IndigoBench (bedroom): +17.48%
- Geekbench 6 (single): +7.88%
- Geekbench 6 (multi): +23.26%
- Cinebench R23 Single: +8.96%
- Cinebench R23 Multi: +21.99%
- CPU-Z V17.01.64 Single: +4.80%
- CPU-Z V17.01.64 Multi: +12.39%
- V-Ray 5: +23.55%
- Corona 10: +21.49%
- AI Benchmark: +29.04%
- 3DMark Night Raid: +10.53%
- 3DMark Solar Bay: +2.65%
- Returnal: +1.85%
- Tomb Raider: +6.19%
- Final Fantasy XV: +8.71%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +5.19%
- CPU Profile 2 Threads: +5.17%
- CPU Profile 4 Threads: +4.84%
- CPU Profile 8 Threads: +11.39%
- CPU Profile 16 Threads: +17.03%
- CPU Profile Max Threads: +17.16%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +33.98%
- Memory Write Bandwidth: +48.91%
- Memory Copy Bandwidth: +35.05%
- Memory Latency: +31.28%
Overclocking with asynchronous eCLK is somewhat of an academic exercise because its main purpose is to overcome the Precision Boost Fmax limit in 1T scenarios. We can see there’s a small performance improvement in the single-threaded benchmark applications. But for the most part, the performance is identical to when we just use Curve Optimizer. The Geomean performance improvement is +11.51%, and we get a maximum improvement of +40.13% in PYPrime.
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5391 MHz with 1.150 volts. The average CPU temperature is 95.5 degrees Celsius. The average CPU package power is 172.5 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5494 MHz with 1.222 volts. The average CPU temperature is 95.2 degrees Celsius. The average CPU package power is 172.1 watts.
The boost frequency at 1 active thread is about 5758 MHZ and the average boost frequency gradually trails off to 5454 MHz when all cores are active. All eight cores can boost to well beyond 5.8 GHz in single-threaded workloads.
AMD Ryzen 7 9700X: Conclusion
Alright, let us wrap this up.
This was my first attempt at overclocking a Zen 5 Ryzen 9000 “Granite Ridge” processor. The headroom of this eight-core chip was surprisingly large: I even had to use eCLK to squeeze the maximum frequency out of it!
Overall, the overclocking experience was very nice. Not only does the 65W stock TDP provide plenty headroom for those who enable Precision Boost Overdrive, but improving the memory performance through overclocking and timing adjustments has a significant performance impact. I was very surprised to see AI Benchmark improve by almost 30%!
Curve Shaper is also a great addition to the overclocker’s toolbox. It made the eCLK strategy significantly more viable and I’m sure performance enthusiasts will find other uses.
Anyway, that’s all for now. I will certainly overclock more Zen 5 processors in the future, so stay tuned for that. I want to thank my Patreon supporters for supporting my work. If you have any questions or comments, please drop them in the comment section below.
See you next time!
Bob
Forgot to mention:
I really NOT recommend doing most of these things for laymen, or 99 % of the normal users.
Set the EXPO that’s been shipping with the DDR5 memory and that’s it.
Zen 5 is not build for us consumers, client users, 99 % of home users (in fact every Zen processor since 2017 isn’t. All Zen are made for servers, hpc etc. usage for companies).
Buy Zen 4 cheaper or wait for Zen 6 in 2026 H1 or Nova Lake in 2026 H2.
If Zen 5 is so dissapointing for us end consumers (waiting 2 years for 10 % performance/efficiency gains), than the solution should not be SHIFTING the effort from AMD to us end consumers; us investing 20 – 50 hours for the missing 5 -10 % performance gains, because the AMD people created such a flop Zen 5 for us.
I mean: everyones choice, but the ratio is very bad.
Most of these things are really high effort & time. Especially writing such article (thanks).
I did all of them myself (except the new ryzen 9000 curve shaper) with Ryzen 5000 series.
“20 – 30 hours time investment reading, watching, trying, tinkering etc.” is not exxagerated.
Absolute beginners will need even more.
Pieter here has given only a rough overview how these things go, not explainign and writing in detail how
the settings work and what causes BSODs, how to tune & test for stability etc.#
There will be dozens and dozens of crashes and BSODs. I promise 😉
Pieter did only the memory first timings I see.
Tuning and testing first timings as CAS, RAS, tras, trc es the easiest part, despite already taking up to 10 – 15 hours easily when going for full tested stability (TestMem 5 with “extreme@anta777” profile for example).
Especially memory second and tertiary timings is immensely time consuming and might take even 50 hours or more, because the system needs 100 % stability for hours, or system, applications orgames will crash with BSODs endlessly!
Secondary & tertiary timings give similar performance increase for video gaming as first timing, but take even more time.
During memory testing the PC is unusuable (100 % system memory usage).
It will go like this: 1) User will set timings 2) then wait 40 minutes (thinking it is stable) 3) only in the 50th minute for TestMem5 throwing an error.
It’s mostly frustrating and includes hours and hours of waiting.
And thus the tinkering beginning anew, dozens of times.
Now this curve shaper with 15 tweakable points is even more time intensive; I can’t imagine how loong it took Pieter here to do it and write the article on top of it!
It’s easily just as time intensive as the memory tuning itself.
Doing it per CCD-basis is somewhat simple, but per core-basis doing Curve Shaper for e.g. a 12-core zen 3 processor, is madness.
It took me 15- 12 hours because the processor (as mentioned) might be stable during medium – full load, but crashed during low load/idle.
Everyones choice, but the reader has been informed now 😉
Zen 5 is a flop.
Thank for the article again,
have a nice day!
Bob
So nothing again Pieter and the well written articles and testing.
I advice everyone who is heavliy dissapointed with Ryzen 9000 to wait for Zen 6.
Zen 5’s architecture is not made for end consumers an clients! The once chinese tester and chipsandcheese have well written articles, making it perfectly clear that all the new things (AVX, FPs, front and back end, etc.) are tailored towards server, hpc and machine learning usage.
https://www.youtube.com/watch?v=ex_gPeWVAo0
The video makes it perfectly clear that AMD execs have sold us end consumers, so far, stupidly overpriced products, based on decades old outdated packaging technology.
It’s pure customer milking.
Zen 6 new architecture, product design and packaging will fix all that oudated things, as very bad I/O-die and it’s very bad power/efficiency during idle or low-load scenario, the infinity fabric, memory controller, especialyl the big disadvantages when it comes to internal and external (DDR memory) latencies which especially heavily affect video gaming.
The cores inside each CCX will likely doubled too (early rumors/leaks point towards 32 core-CCX for server usage).
And most things points towards Zen 6 will be on new AM6 platform, and Zen 5 the last Zen-product on AM5.
The nonsense marketing about “platform longevity” are lies. Just as with AM4 it means they will release the 10th refresh as Ryzen 9 5900XT & Ryzen 7 5800XT 5 years later.
The same will happen with Zen 5 products in 2027.
DDR6 is already happening in 2025.
Cheers, have a nice day and keep writting good articles 😉
I guess some want to spent that disproportionately bad 20 – 30 hours on something for tiny – small performance gains.
Well, everyones choice afterall.
Bob
Wow. High effort & time.
Thanks for writing.
1) Spent 20 – 30 hours of your life reading, watching videos, testing over and over and over again, benchmarking, get dozens of BSODs etc. on something that bring 1 – 5 % video gaming performance maximum, and between 5 – 20 % application performance, but at the same time increase power draw by 50 – 100 % maximum.
Such a joke. Already did it once with Ryzen 5000, not again.
Zen 5 is such a big FLOP. Too bad everything points toward Intel’s being the same flop, so the end consumers has only the choice between a flop-product in red, or blue color.
Every Zen processors and it’s design & architecture – now even more Zen 5 -, is not made for us end consumers clients, desktop users, especially DIY-users.
It’s made server- and hpc usage. Here are the big bucks and margins.
Point is: Majority of us end consumers clients, desktop users, especially DIY-users are buying CPUs for video gaming. These is made perfectly clear (in every country) by looking at Ryzen 5800X3D and 7800X3D sales.
Or in short: AMD is selling us clients and end consumers an stupidly overpriced product (tiny chiplets) on freaking outdated packacking technology.
That’s why AMD’s marketing department now heavily markets tooooooning.
As I’ve read the contract for Ryzen 9000 for various big testers and reviewers was to include tooooooning in their articles.
Shaak
You’d better add Aida64 Cache&Memory screenshot as you do for CPUz
Gus
Awesome work!