SkatterBencher #79: Ryzen 5 9600X Overclocked to 5818 MHz

ryzen 5 9600x skatterbencher overclocking guide

We overclock the AMD Ryzen 5 9600X to 5818 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 video, I break down the Ryzen 5 9600X tuning process into four unique overclocking strategies for beginner and advanced overclockers.

  • First, we enable Precision Boost Overdrive 2 and EXPO.
  • Second, we tune Precision Boost Overdrive 2 with Curve Optimizer
  • Third, 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.

AMD Ryzen 5 9600X: Introduction

The AMD Ryzen 5 9600X 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.

ryzen 9000 processor line up

The Ryzen 5 9600X succeeds the 6-core Zen 4 Ryzen 7 7600X which we overclocked to 5.55 GHz in SkatterBencher #48. It has a base clock of 3.9 GHz and a listed boost frequency of up to 5.4 GHz. Unlike its predecessor, its TDP is capped at 65W.

Platform Overview

The system we’re overclocking today consists of the following hardware.

ItemSKUPrice (USD)
CPUAMD Ryzen 5 9600X279
MotherboardASUS ROG Crosshair X670E Hero579
CPU CoolingEnermax LIQMAXFLO SR 360125
MemoryG.SKILL Trident Z5 DDR5-6400 32GB110
Power SupplyXPG Fusion 1600W Titanium600
Graphics CardASUS ROG Strix RTX 2080 TI490
StorageAGI 512GB NVMe M.2 Gen375
ChassisOpen Benchtable V2200
TelemetryBENCHLAB200

Benchmark Software

We use Windows 11 and the following benchmark applications to measure performance and ensure system stability.

BENCHMARKLINK
Pyprime 2.0https://github.com/mbntr/PYPrime-2.x
7-Zip 19.0https://www.7-zip.org/
IndigoBenchhttps://www.indigorenderer.com/indigobench
Geekbench 6https://www.geekbench.com/
Cinebench 2024.1https://www.cpuid.com/softwares/cpu-z.html
CPU-Zhttps://www.cpuid.com/softwares/cpu-z.html
V-Ray 6https://www.chaosgroup.com/vray/benchmark
Corona Benchmarkhttps://ai-benchmark.com/
AI-Benchmarkhttps://ai-benchmark.com/
3DMark CPU Profilehttps://www.3dmark.com/
3DMark Night Raidhttps://www.3dmark.com/
3DMark Solar Bayhttps://www.3dmark.com/
Returnalhttps://store.steampowered.com/app/750920/Shadow_of_the_Tomb_Raider_Definitive_Edition/
Shadow of the Tomb Raiderhttps://store.steampowered.com/app/750920/Shadow_of_the_Tomb_Raider_Definitive_Edition/
Final Fantasy XVhttp://benchmark.finalfantasyxv.com/na/
OCCThttps://www.ocbase.com/
AIDA64https://www.aida64.com/

AMD Ryzen 5 9600X: Stock Performance

Before starting overclocking, we must check the system performance at default settings. The default Precision Boost 2 parameters for the Ryzen 5 9600X 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: 5450 MHz
  • FIT: 1847.5
ryzen 5 9600x stock precision boost parameters

Here is the benchmark performance at stock:

  • PYPrime 32B: 223.162 seconds
  • 7-Zip: 94,665 mips
  • IndigoBench (Bedroom): 2.187 MSamples/sec
  • Geekbench 6 (single): 3,240 points
  • Geekbench 6 (multi): 14,256 points
  • Cinebench 2024 Single: 130 points
  • Cinebench 2024 Multi: 928 points
  • CPU-Z V17.01.64 Single: 861.2 points
  • CPU-Z V17.01.64 Multi: 6,601.1 points
  • V-Ray 5: 19,082 samples
  • Corona 10: 5.845 MRays/s
  • AI Benchmark: 5,543 points
  • 3DMark Night Raid: 75,821 marks
  • 3DMark Solar Bay: 68,090 marks
  • Returnal: 110 fps
  • Tomb Raider: 201 fps
  • Final Fantasy XV: 185.91 fps

Here are the 3DMark CPU Profile scores at stock:

  • CPU Profile 1 Thread: 1,264 pts
  • CPU Profile 2 Threads: 2,506 pts
  • CPU Profile 4 Threads: 4,892 pts
  • CPU Profile 8 Threads: 7,181 pts
  • CPU Profile 16 Threads: 7,820 pts
  • CPU Profile Max Threads: 7.814 pts

Here are the AIDA64 memory benchmark scores at stock:

  • Memory Read Bandwidth: 52,338 MB/sec
  • Memory Write Bandwidth: 63,181 MB/sec
  • Memory Copy Bandwidth: 49,085 MB/sec
  • Memory Latency: 83.8 ns

When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 4655 MHz with 1.030 volts. The average CPU temperature is 67.4 degrees Celsius. The average CPU package power is 87.8 watts.

ryzen 5 9600x stock occt avx2 stress test

When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 4938 MHz with 1.109 volts. The average CPU temperature is 67.1 degrees Celsius. The average CPU package power is 87.8 watts.

ryzen 5 9600x stock occt sse stress test

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.

rog crosshair x670e hero cmos clear

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.

precision boost overdrive 2

There are essentially 3 levels of Precision Boost Overdrive

  1. AMD’s stock values, which can be set by disabling PBO
  2. The motherboard vendor values, which are programmed into the BIOS to match the motherboard VRM specification and can be set by enabling PBO
  3. 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:

ryzen 5 9600x precision boost overdrive 2 parameters

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.

amd expo

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: +3.13%
  • PYPrime 32B: +14.87%
  • 7-Zip: +4.53%
  • IndigoBench (bedroom): +4.94%
  • Geekbench 6 (single): +3.02%
  • Geekbench 6 (multi): +9.10%
  • Cinebench R23 Single: +3.85%
  • Cinebench R23 Multi: +8.41%
  • CPU-Z V17.01.64 Single: +0.56%
  • CPU-Z V17.01.64 Multi: +2.32%
  • V-Ray 5: +6.35%
  • Corona 10: +6.70%
  • AI Benchmark: +11.69%
  • 3DMark Night Raid: +2.55%
  • 3DMark Solar Bay: +0.64%
  • Returnal: +0.91%
  • Tomb Raider: +1.49%
  • Final Fantasy XV: +0.64%

Here are the 3DMark CPU Profile scores:

  • CPU Profile 1 Thread: +0.49%
  • CPU Profile 2 Threads: +0.56%
  • CPU Profile 4 Threads: +0.88%
  • CPU Profile 8 Threads: +0.15%
  • CPU Profile 16 Threads: +4.14%
  • CPU Profile Max Threads: +4.03%

Here are the AIDA64 memory benchmark scores:

  • Memory Read Bandwidth: +18.55%
  • Memory Write Bandwidth: +35.50%
  • Memory Copy Bandwidth: +22.43%
  • Memory Latency: +18.19%

Despite the Ryzen 5 9600X having only six Zen 5 cores, the performance is constrained by its maximum power limit of 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 benchmark performance improvement is +3.13%, and we get a maximum improvement of +14.87% in PyPrime.

When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5090 MHz with 1.187 volts. The average CPU temperature is 94.7 degrees Celsius. The average CPU package power is 128.4 watts.

ryzen 5 9600x precision boost overdrive occt avx2 stress test

When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5209 MHz with 1.275 volts. The average CPU temperature is 93.9 degrees Celsius. The average CPU package power is 138.6 watts.

ryzen 5 9600x precision boost overdrive occt sse stress test

The boost frequency at 1 active thread is about 5447 MHZ and the average boost frequency gradually trails off to 5204 MHz when all cores are active. All cores can boost to over 5.4 GHz in single-threaded workloads.

ryzen 5 9600x precision boost overdrive boost curve

OC Strategy #2: PBO Tuned & Curve Optimized

In our second overclocking strategy, we tune the CPU’s Precision Boost dynamic frequency technology and undervolt our processor using the Precision Boost Overdrive 2 toolkit.

PBO 2: Fmax Boost Override

Fused maximum frequency, or Fmax, is one of the Precision Boost infrastructure limiters constraining the CPU performance. The limiter determines the maximum allowed processor frequency across all CPU cores inside your Ryzen 5 9600X.

Boost Clock Override or Fmax Override is one of the tools available in the Precision Boost Overdrive 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 5 9600X is 5450 MHz. So, with a +200 Fmax Boost Override, the new maximum boost frequency is 5650 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 6 cores are active, the maximum voltage is 1.35V.

The programmed FIT value of this particular Ryzen 5 9600X is 1847.5. So, with a 10X scalar, the new FIT value is 18475. 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!

ryzen 5 9600x precision boost overdrive scalar

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 5 9600X processor. This curve represents the average curve of the six cores inside each CCD because, actually, each of the six cores inside the CCD has its own curve.

ryzen 5 9600x v/f 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 4950 MHz. However, we need over 1.3V for a frequency of more than 5.4 GHz.

We also notice that the maximum allowed voltage is 1.35V when all cores are active. We can increase this to 1.375V by setting a 10X Scalar. The Precision Boost 2 algorithm utilizes the V/F curve to find what’s the maximum possible frequency at 1.375V. With the default curve, that’s about 5450 MHz. However, as I showed a little earlier, we can use the Fmax Boost Override tool to increase the Fmax by another 200 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.

ryzen 5 9600x curve optimized v/f curve

For example, for 5 GHz we needed about 1.117V by default, but with a -30 Curve Optimizer, now we only need 1.021V! Moreover, the frequency is also boosting higher! The highest frequency with all six cores active has increased by 120 MHz to almost 5650 MHz. These higher frequencies are now possible because our Curve Optimizer undervolting pulled them below the 1.375V 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.

  1. First, undervolting lowers the operating voltage, temperature, and power consumption.
  2. 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:

  1. Curve Optimizer impacts the entire voltage-frequency curve. So, it affects stability across the entire range of operating frequencies: from 600 to 6000 MHz.
  2. The same Curve Optimizer value impacts differently across the curve
ryzen 9000 curve optimizer

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.

The easiest way to approach Curve Optimizing is by trying to find the weak spot of the curve. That can vary between architectures and even chips. In my case, I found that the Y-Cruncher BKT workload was always the first to fail when undervolting with Curve Optimizer.

y-cruncher bkt test

BKT is a relatively light workload as it runs integer operations on all cores. This pushes the effective clock quite high up the V/F curve and stress tests high operating frequencies. After adjusting the Curve Optimizer such that the BKK workload was stable, I also ran all other benchmarks and stress tests and the system appeared stable.

With this Ryzen 5 9600X, I could set an all-core curve optimizer of -35.

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

Then save and exit the BIOS.

We re-ran the benchmarks and checked the performance increase compared to the default operation.

  • Geomean: +4.74%
  • PYPrime 32B: +15.44%
  • 7-Zip: +6.10%
  • IndigoBench (bedroom): +9.47%
  • Geekbench 6 (single): +6.33%
  • Geekbench 6 (multi): +12.41%
  • Cinebench R23 Single: +6.15%
  • Cinebench R23 Multi: +11.85%
  • CPU-Z V17.01.64 Single: +3.00%
  • CPU-Z V17.01.64 Multi: +7.64%
  • V-Ray 5: +12.52%
  • Corona 10: +11.90%
  • AI Benchmark: +15.21%
  • 3DMark Night Raid: +4.15%
  • 3DMark Solar Bay: +0.69%
  • Returnal: +0.91%
  • Tomb Raider: +1.49%
  • Final Fantasy XV: +0.31%

Here are the 3DMark CPU Profile scores:

  • CPU Profile 1 Thread: +4.03%
  • CPU Profile 2 Threads: +3.95%
  • CPU Profile 4 Threads: +5.48%
  • CPU Profile 8 Threads: +6.85%
  • CPU Profile 16 Threads: +8.96%
  • CPU Profile Max Threads: +9.16%

Here are the AIDA64 memory benchmark scores:

  • Memory Read Bandwidth: +20.04%
  • Memory Write Bandwidth: +36.85%
  • Memory Copy Bandwidth: +22.23%
  • Memory Latency: +19.03%

Curve Optimizer and Fmax Boost Override are powerful tools to add performance to a Ryzen processor. With a minimal amount of work, we’ve improved the performance quite significantly  across the board. The Geomean performance improvement is +4.74%, and we get a maximum improvement of +15.44% in the PyPrime.

When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5293 MHz with 1.169 volts. The average CPU temperature is 95.2 degrees Celsius. The average CPU package power is 133.2 watts.

ryzen 5 9600x pbo tuned occt avx2 stress test

When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5405 MHz with 1.253 volts. The average CPU temperature is 95.3 degrees Celsius. The average CPU package power is 132.6 watts.

ryzen 5 9600x pbo tuned occt sse stress test

The boost frequency at 1 active thread is about 5649 MHZ and the average boost frequency gradually trails off to 5420 MHz when all cores are active. All six cores can boost to over 5.65 GHz in single-threaded workloads.

ryzen 5 9600x pbo tuned boost curve

OC Strategy #3: Memory Tuned

In our third 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 5 9600X, we can tune them independently. There were three things I wanted to address with the memory subsystem performance optimization.

  1. I want to increase the FCLK as high as possible,
  2. I want to run the UCLK and MCLK in sync, and
  3. I want to tighten up the memory timings.

Infinity Fabric (FCLK) 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.

ryzen 9000 fclk

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.

ryzen 9000 fclk pbo enabled

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
ryzen 9000 vddg 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 (UCLK) 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!).

amd granite ridge soc block diagram

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.

ryzen 9000 umcclk uclk mclk

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.

ryzen 9000 uclk expo enabled

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.

ryzen 9000 vddcr_soc voltage

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 (MCLK) 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 previous Hawk Point and Granite Ridge SkatterBencher guides. In those guides, the memory profile wasn’t entirely stable without further adjustments. That’s also the case for this system as the kit is stable at DDR5-6400 to pass the benchmarks, but not stable to pass the OCCT memory stability test.

However, we passed the OCCT memory stability test by reducing the memory frequency by one notch to DDR5-6200. Note that we still rely on the EXPO profile for the voltage configuration and the ASUS Memory Preset for the sub-timing configuration.

occt memory stress test

After the tuning, our AIDA64 performance improves quite significantly. We got about +20% extra performance by enabling EXPO and added another 15% on top of that by tuning the memory timings.

ryzen 5 9600x memory tuned aida performance improvement

BIOS Settings & Benchmark Results

Upon entering the BIOS

  • Go to the Extreme Tweaker menu
  • Set Ai Overclock Tuner to EXPO II
  • Set Memory Frequency to DDR5-6200
  • 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
  • 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
    • 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
      • 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

Then save and exit the BIOS.

We re-ran the benchmarks and checked the performance increase compared to the default operation.

  • Geomean: +6.49%
  • PYPrime 32B: +39.61%
  • 7-Zip: +6.48%
  • IndigoBench (bedroom): +10.88%
  • Geekbench 6 (single): +7.96%
  • Geekbench 6 (multi): +17.27%
  • Cinebench R23 Single: +9.23%
  • Cinebench R23 Multi: +16.27%
  • CPU-Z V17.01.64 Single: +3.59%
  • CPU-Z V17.01.64 Multi: +6.97%
  • V-Ray 5: +14.61%
  • Corona 10: +13.42%
  • AI Benchmark: +22.17%
  • 3DMark Night Raid: +4.92%
  • 3DMark Solar Bay: +1.31%
  • Returnal: +0.91%
  • Tomb Raider: +1.49%
  • Final Fantasy XV: +1.18%

Here are the 3DMark CPU Profile scores:

  • CPU Profile 1 Thread: +4.35%
  • CPU Profile 2 Threads: +4.35%
  • CPU Profile 4 Threads: +5.56%
  • CPU Profile 8 Threads: +7.00%
  • CPU Profile 16 Threads: +9.03%
  • CPU Profile Max Threads: +9.18%

Here are the AIDA64 memory benchmark scores:

  • Memory Read Bandwidth: +32.71%
  • Memory Write Bandwidth: +49.92%
  • Memory Copy Bandwidth: +35.36%
  • Memory Latency: +38.28%

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 +39.61% over stock. But that’s very much a memory benchmark. However, we also see a performance uplift of 5 to7 percentage points in other multithreaded benchmarks such as Geekbench and AI Benchmark. The Geomean performance improvement is +6.49%.

OC Strategy #5: Asynchronous eCLK

In our fourth and final overclocking strategy, we take advantage of 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.

amd ryzen 9000 clock diagram

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 #2 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 5 9600X: the default curve and the one from OC Strategy #2 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 250 MHz (4950 to 5200), but increasing from 1.2V to 1.3V only gives an extra 150 MHz (5200 to 5350).

The law of diminishing returns also applies to our undervolt. With a -35 curve optimizer we get an extra 350 MHz at 1.1V (4950 to 5300) but only +250 MHz at 1.3V (5350 to 5600).

If we increase the ECLK by 5.5%, setting it to 105.5 MHz, then the resulting curve looks as follows:

ryzen 5 9600x eclk v/f curve

We can see that the frequency increases by about 250 to 300 MHz across the entire curve and doesn’t show any diminishing returns! Au contraire, we get more additional frequency the further up the curve we go!

However, compared to our Curve Optimized curve, we find that while we have higher frequencies at the upper end of the curve, we’re using more voltage at the lower end of the curve. The consequence in the real world is that despite adding top frequency for single threaded applications, we might be sacrificing all-round frequency in all-core workloads.

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 video on this channel

amd curve shaper

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 achieve two things:

First, something I didn’t mention earlier, but with the 105.5 MHz ECLK our CPU wasn’t stable in the BKT workload. For this purpose, we can use the high frequency shaper point and apply a positive shaper magnitude. When we set the value to +10, the voltage at 5.6 GHz increases from 1.250V to 1.291V.

Second, 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 frequency shaper point and apply a negative shaper magnitude. When we set the value to -30, the curve looks as follows:

ryzen 5 9600x eclk curve shaped v/f curve

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.

Sidenote: there are some small bugs with the Curve Shaper implementation. Specifically, I think there’s some guardbands missing preventing us from configuring “illegal” values. A value would be “illegal” if the target voltage of a certain frequency is lower than that of a lower frequency. This isn’t the time to discuss this in greater detail, just know that I manually set the maximum frequency shaper point to +30 to work around some of these issues.

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 5 9600X was as follows.

  1. First, based on the default V/F curve (without Fmax Boost Override) I created a “simulated” V/F curve at 105.5 MHz to have a rough idea of where we end up with the VF points
  2. Second, I ran the Y-Cruncher BKK workload as a primary stress test as that proved to be the weakest link when Curve Optimizing. If the benchmark were stable, I’d further increase the ECLK. But it wasn’t.
  3. Third, I set the Curve Shaper points to address the Y-Cruncher BKK instability”
    1. Set the High Frequency point to a positive value until stable
    1. Set the Maximum Frequency point to +30 to work around some Curve Shaper bug
  4. Fourth, I try to undervolt the lower end of the V/F curve as much as possible by setting the Low Frequency shaper point as low as possible.
  5. Lastly, I try to increase the maximum frequency in 1T workloads by increasing the Fmax boost override

As usual, the requirement for stability is that we pass all benchmarks and OCCT stability tests.

ryzen 5 9600x eclk curve shaped tuning process

This configuration gives me a theoretical maximum frequency of 5961 MHz (5650 x 1.055). However, we are still limited by the voltage, so ultimately the maximum idle frequency is 5818 MHz and the maximum all-core frequency in a light workload is about 5.7 GHz.

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 105.50
  • Set Memory Frequency to DDR5-6200
  • 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
  • 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
    • 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, High, and Max Frequency, set Low, Medium, and High Temperature to Enable
        • For Low Frequency, set all temperature Signs to Negative
        • For High and Max Frequency, set all temperature Signs to Positive
        • For Low Frequency, set all temperature Magnitudes to 30
        • For High Frequency, set all temperature Magnitudes to 10
        • For Max Frequency, set all temperature Magnitudes 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

Then save and exit the BIOS.

We re-ran the benchmarks and checked the performance increase compared to the default operation.

  • Geomean: +7.20%
  • PYPrime 32B: +40.59%
  • 7-Zip: +10.79%
  • IndigoBench (bedroom): +10.79%
  • Geekbench 6 (single): +10.25%
  • Geekbench 6 (multi): +17.73%
  • Cinebench R23 Single: +10.00%
  • Cinebench R23 Multi: +16.27%
  • CPU-Z V17.01.64 Single: +5.54%
  • CPU-Z V17.01.64 Multi: +7.14%
  • V-Ray 5: +15.21%
  • Corona 10: +13.44%
  • AI Benchmark: +22.32%
  • 3DMark Night Raid: +5.53%
  • 3DMark Solar Bay: +1.62%
  • Returnal: +0.91%
  • Tomb Raider: +1.49%
  • Final Fantasy XV: +1.23%

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 light workload 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 +7.20%, and we get a maximum improvement of +40.59% in PYPrime.

When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5275 MHz with 1.163 volts. The average CPU temperature is 95.4 degrees Celsius. The average CPU package power is 143.6 watts.

ryzen 5 9600x eclk occt avx2 stress test

When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5425 MHz with 1.254 volts. The average CPU temperature is 95.3 degrees Celsius. The average CPU package power is 143.8 watts.

ryzen 5 9600x eclk occt sse stress test

The boost frequency at 1 active thread is about 5665 MHZ and the average boost frequency gradually trails off to 5424 MHz when all cores are active. Five out of six cores can boost beyond 5.8 GHz in single-threaded workloads.

ryzen 5 9600x eclk boost curve

AMD Ryzen 5 9600X: Conclusion

Alright, let us wrap this up.

The six core Ryzen 5 9600X is the entry level Zen 5 desktop processor and, thus, supposedly the lowest bin for all four available SKUs. However, the overclocking potential was once again very impressive. I even managed to see 6 GHz with this particular chip.

6 ghz ryzen 5 9600x

It was good to confirm the observations from my first Zen 5 overclocking guide: enabling PBO and Curve Optimizing gives a performance uplift. Furthermore, memory timings appear to make quite an impact too. However, the relative performance improvement is not as big as it was with the Ryzen 7 9700X. Also, it confirms that Curve Shaper is also a great addition to the overclocker’s toolbox as it makes the eCLK strategy viable.

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!

2 thoughts on “SkatterBencher #79: Ryzen 5 9600X Overclocked to 5818 MHz

  1. Mike

    Is the 105W tdp agesa unlock relevant to getting the best overclock? Was it used for your testing? Thx!

    1. Pieter

      The 105W increase is a light version of OC Strategy #1, where I unlock the power and enable EXPO. So you’ll get a part of the performance gains from enabling 105W.

      I didn’t use the 105W in my testing, so the stock performance was with 65W TDP.

Leave A Comment