SkatterBencher #82: Ryzen 7 9800X3D Overclocked to 5750 MHz
We overclock and undervolt the AMD Ryzen 7 9800X3D to 5750 MHz with the ASUS ROG Crosshair X870E Hero motherboard and AIO liquid 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 guide, I break down the Ryzen 7 9800X3D tuning process into four unique overclocking strategies for beginner and advanced overclockers.
- First, we enable Precision Boost Overdrive 2 and EXPO.
- Second, we tune with the Precision Boost Overdrive 2 toolkit (incl. Curve Optimizer)
- Third, we tune the memory subsystem performance
- Lastly, we 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 9800X3D: Introduction
The AMD Ryzen 7 9800X3D 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 9800X3D succeeds the 8-core Zen 4 Ryzen 7 7800X3D which we overclocked in SkatterBencher #60. It has a base clock of 4.7 GHz and a listed boost frequency of up to 5.2 GHz. Just like its predecessor, its TDP is capped at 120W.
Platform Overview
The system we’re overclocking today consists of the following hardware.
Item | SKU | Price (USD) |
CPU | AMD Ryzen 7 9800X3D | 479 |
Motherboard | ASUS ROG Crosshair X870E Hero | 699 |
CPU Cooling | Enermax LIQMAXFLO 420 | 232 |
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.chaosgroup.com/vray/benchmark |
Corona 10 Benchmark | https://ai-benchmark.com/ |
AI-Benchmark | https://ai-benchmark.com/ |
Y-Cruncher 5B | http://www.numberworld.org/y-cruncher/ |
3DMark CPU Profile | https://www.3dmark.com/ |
3DMark Night Raid | https://www.3dmark.com/ |
Returnal | https://store.steampowered.com/app/1649240/Returnal/ |
Black Myth: Wukong | https://store.steampowered.com/app/750920/Shadow_of_the_Tomb_Raider_Definitive_Edition/ |
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 9800X3D: Stock Performance
Before starting overclocking, we must check the system performance at default settings. The default Precision Boost 2 parameters for the Ryzen 7 9800X3D are as follows:
- PPT: 162 W
- TDP: 120 W
- PCC: 244 W
- TDC CPU: 120 A
- EDC CPU: 180 A
- THM: 95 C (Core, GPU, SOC)
- VID: 1.40 V
- FMAX: 5250 MHz
- FIT: 1991.1
Here is the benchmark performance at stock:
- PYPrime 32B: 221.063 seconds
- 7-Zip: 130,864 mips
- IndigoBench (Bedroom): 3.103 MSamples/sec
- Geekbench 6 (single): 3,262 points
- Geekbench 6 (multi): 17,391 points
- Cinebench 2024 Single: 129 points
- Cinebench 2024 Multi: 1,292 points
- CPU-Z V17.01.64 Single: 892.8 points
- CPU-Z V17.01.64 Multi: 8,838.3 points
- V-Ray 6: 27,295 samples
- Corona 10: 8.433 MRays/s
- AI Benchmark: 7,069 points
- Y-Cruncher 5B: 152.563
- 3DMark Night Raid: 85,187 marks
- Returnal: 109 fps
- Tomb Raider: 203 fps
- Final Fantasy XV: 178.26 fps
Here are the 3DMark CPU Profile scores at stock:
- CPU Profile 1 Thread: 1,217 pts
- CPU Profile 2 Threads: 2,422 pts
- CPU Profile 4 Threads: 4,788 pts
- CPU Profile 8 Threads: 8,869 pts
- CPU Profile 16 Threads: 10,248 pts
- CPU Profile Max Threads: 10,255 pts
Here are the OCCT Benchmark scores at stock:
- SSE Single Thread: 106.07 pts
- SSE Multi Thread: 872.77 pts
- AVX Single Thread: 225.01 pts
- AVX Multi Thread: 1,821.67 pts
Here are the AIDA64 memory benchmark scores at stock:
- Memory Read Bandwidth: 51,960 MB/sec
- Memory Write Bandwidth: 64,268 MB/sec
- Memory Copy Bandwidth: 49,101 MB/sec
- Memory Latency: 93.1 ns
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 4880 MHz with 1.104 volts. The average CPU temperature is 83.8 degrees Celsius. The average CPU package power is 141.3 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5181 MHz with 1.205 volts. The average CPU temperature is 87.0 degrees Celsius. The average CPU package power is 149.0 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 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 I
- Enter the Precision Boost Overdrive submenu
- Set Precision Boost Overdrive to enabled
Then save and exit the BIOS.
The boost frequency at 1 active thread is about 5225 MHZ and the average boost frequency gradually trails off to 5185 MHz when all cores are active. All cores can boost to over 5.25 GHz in single-threaded workloads.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +2.40%
- PYPrime 32B: +13.45%
- 7-Zip: +1.82%
- IndigoBench (bedroom): +2.61%
- Geekbench 6 (single): +2.18%
- Geekbench 6 (multi): +9.14%
- Cinebench R23 Single: +3.88%
- Cinebench R23 Multi: +6.04%
- CPU-Z V17.01.64 Single: +0.46%
- CPU-Z V17.01.64 Multi: +0.25%
- V-Ray 6: +4.60%
- Corona 10: +1.52%
- AI Benchmark: +11.74%
- Y-Cruncher 5B: +4.87%
- 3DMark Night Raid: +4.87%
- Returnal: +0.92%
- Black Myth: +0.93%
- Tomb Raider: +0.99%
- Final Fantasy XV: +2.20%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +0.58%
- CPU Profile 2 Threads: +0.87%
- CPU Profile 4 Threads: +0.79%
- CPU Profile 8 Threads: +1.43%
- CPU Profile 16 Threads: +0.24%
- CPU Profile Max Threads: +0.30%
Here are the OCCT Benchmark scores:
- SSE Single Thread: +0.37%
- SSE Multi Thread: +3.23%
- AVX Single Thread: +0.19%
- AVX Multi Thread: +0.15%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +19.40%
- Memory Write Bandwidth: +36.14%
- Memory Copy Bandwidth: +22.65%
- Memory Latency: +15.37%
Unlike the first single-CCD Ryzen 9000 processors, the Ryzen 7 9800X3D isn’t limited by the power limits. So, enabling PBO doesn’t have that much of a performance impact. However, the improved memory performance by enabling EXPO does translate into some small single-digit performance gains across the board. The Geomean performance improvement is +2.40%, and we get a maximum improvement of +13.45% in PyPrime.
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 4857 MHz with 1.105 volts. The average CPU temperature is 83.5 degrees Celsius. The average CPU package power is 151.6 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5163 MHz with 1.207 volts. The average CPU temperature is 87.7 degrees Celsius. The average CPU package power is 159.4 watts.
OC Strategy #2: PBO CO 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 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.
The programmed Fmax of the Ryzen 7 9800X3D is 5250 MHz. So, with a +200 Fmax Boost Override, the new maximum boost frequency is 5450 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.
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 voltage limit is 1.45V, though we only see slight excursions above 1.4V in really light single-threaded workloads. When all 8 cores are active, the maximum voltage is 1.35V.
It’s difficult to observe the limit with this particular Ryzen 7 9800X3D because the default curve only goes up to 1.18V for 5.25 GHz. However, we can observe it more easily by applying a positive curve optimizer.
The programmed FIT value of this particular Ryzen 7 9800X3D 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.370V. That’s not a big increase, but in voltage-constraint scenarios, every little bit helps!
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 9800X3D processor. This curve represents the average curve of the eight cores inside the CCD because, actually, each of the eight cores 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.01V for a frequency of 4.5 GHz. However, we need over 1.13V for 5.1 GHz.
Although it’s not obvious from the V/F curve, 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 5225 MHz at 1.18V.
As I showed just a minute ago, we can use the Fmax Boost Override tool to increase the Fmax by another 200 MHz. That further extends the default V/F curve from 5250 MHz to 5450 MHz. Now, the Precision Boost algorithm pushes the CPU up to 5425 MHz at 1.328V, still below the 1.35V threshold.
If we set a negative Curve Optimizer, 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.1 GHz we needed about 1.13V by default, but with a -40 Curve Optimizer, now we only need 0.998V!
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.
Ryzen 7 9800X3D 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.
I want to emphasize this point and refer to my Ryzen 9 9950X overclocking guide, where I demonstrated that the V/F curve changes depending on the workload. With a dynamic voltage-frequency scaling technology like Precision Boost 2, it’s vital to test a wide variety of scenarios as opposed to just a heavy all-core workload. Sometimes your all-core AVX workload can be entirely stable, but you get bluescreens in games.
I identified four typical workloads that tend to show early signs of instability:
- OCCT Memory Stress Test, which is an extremely light all-core workload
- Y-Cruncher BKT, which is a light all-core workload
- Y-Cruncher Benchmark, which is a moderate AVX all-core workload
- OCCT AVX Stress Test, which is a heavy AVX all-core workload
So, when I increase the negative Curve Optimizer setting in steps of 5 points, I quickly check stability with each of these applications. Once I find an instability, I back off on the Curve Optimizer and check stability across the benchmark suite.
With this CPU, I could set an all-core curve optimizer of -40.
BIOS Settings & Benchmark Results
Upon entering the BIOS
- Go to the Extreme Tweaker menu
- Set Ai Overclock Tuner to EXPO I
- 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 40
- Set Curve Optimizer to All Cores
- Leave the Curve Optimizer submenu
- Enter the Precision Boost Overdrive submenu
Then save and exit the BIOS.
The boost frequency at 1 active thread is about 5425 MHZ which is maintained even when all cores are active. All eight cores can boost to over 5.45 GHz in single-threaded workloads.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +4.84%
- PYPrime 32B: +14.55%
- 7-Zip: +5.29%
- IndigoBench (bedroom): +5.58%
- Geekbench 6 (single): +5.76%
- Geekbench 6 (multi): +13.40%
- Cinebench R23 Single: +7.75%
- Cinebench R23 Multi: +9.60%
- CPU-Z V17.01.64 Single: +4.13%
- CPU-Z V17.01.64 Multi: +4.09%
- V-Ray 5: +7.75%%
- Corona 10: +5.98%
- AI Benchmark: +15.45%
- Y-Cruncher 5B: +7.66%
- 3DMark Night Raid: +4.93%
- Black Myth: +0.93%
- Tomb Raider: +0.99%
- Final Fantasy XV: +2.27%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +4.60%
- CPU Profile 2 Threads: +4.58%
- CPU Profile 4 Threads: +4.51%
- CPU Profile 8 Threads: +5.03%
- CPU Profile 16 Threads: +4.64%
- CPU Profile Max Threads: +4.51%
Here are the OCCT Benchmark scores:
- SSE Single Thread: +4.18%
- SSE Multi Thread: +7.73%
- AVX Single Thread: +4.02%
- AVX Multi Thread: +6.77%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +19.40%
- Memory Write Bandwidth: +36.93%
- Memory Copy Bandwidth: +22.83%
- Latency: +15.65%
Combining the impact of extending the maximum frequency by 200 MHz with quite a dramatic undervolt showed a pretty substantial impact on the boost curve. However, even though we can definitely see the performance improve, we’re not seeing spectacular gains. The Geomean performance improvement is +4.84%, and we get a maximum improvement of +15.45% in AI Benchmark.
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5224 MHz with 1.073 volts. The average CPU temperature is 82.2 degrees Celsius. The average CPU package power is 150.4 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5421 MHz with 1.182 volts. The average CPU temperature is 84.6 degrees Celsius. The average CPU package power is 157.0 watts.
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 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 7 9800X3D, 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.
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 anything higher 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, 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.
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 X870E 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 AMD Ryzen SkatterBencher guides. Similar to the Ryzen 5 9600X which I overclocked in SkatterBencher #79, I had to lower the memory frequency from the EXPO-rated DDR5-6400 to DDR5-6200 to maintain stability with the tighter memory timings.
After the tuning, our AIDA64 performance improved quite significantly. We got about +25% extra performance by enabling EXPO and added another 12-15% 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 I
- 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
- 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 40
- Set Curve Optimizer to All Cores
- Leave the Curve Optimizer submenu
- 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: +6.44%
- PYPrime 32B: +38.17%
- 7-Zip: +9.37%
- IndigoBench (bedroom): +7.35%
- Geekbench 6 (single): +7.11%
- Geekbench 6 (multi): +16.93%
- Cinebench R23 Single: +9.30%
- Cinebench R23 Multi: +12.93%
- CPU-Z V17.01.64 Single: +4.17%
- CPU-Z V17.01.64 Multi: +4.21%
- V-Ray 5: +10.48%
- Corona 10: +7.21%
- AI Benchmark: +21.11%
- Y-Cruncher 5B: +24.60%
- 3DMark Night Raid: +6.30%
- Returnal: +0.92%
- Black Myth: +0.93%
- Tomb Raider: +0.99%
- Final Fantasy XV: +2.61%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +4.68%
- CPU Profile 2 Threads: +4.87%
- CPU Profile 4 Threads: +4.82%
- CPU Profile 8 Threads: +5.14%
- CPU Profile 16 Threads: +4.67%
- CPU Profile Max Threads: +4.57%
Here are the OCCT Benchmark scores:
- SSE Single Thread: +4.27%
- SSE Multi Thread: +8.34%
- AVX Single Thread: +4.26%
- AVX Multi Thread: +6.94%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +33.98%
- Memory Write Bandwidth: +47.11%
- Memory Copy Bandwidth: +33.98%
- Memory Latency: +33.00%
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 +38.17% 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 +6.44%.
OC Strategy #4: 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.
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 7 9800X3D: the default curve and the one from OC Strategy #2 with the -40 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.00V to 1.05V gives an extra 300 MHz, but increasing from 1.10V to 1.15V only gives an extra 175 MHz.
The law of diminishing returns also applies to our undervolt. With a -40 curve optimizer we get an extra 675 MHz at 1.0V (5100-4425) but only +425 MHz at 1.1V (5400-4975).
If we were to increase the ECLK by 5.5%, setting it to 105.5 MHz, then the resulting curve would look as follows.
We can make three key observations:
- The frequency increases by 200 to 250 MHz across the entire curve and doesn’t show any diminishing returns.
- While the voltage for a given frequency is lower than the default curve, it is higher than with our Curve Optimized curve. For example, for 5 GHz we need 1.107V by default, about 1.056V when using 105.5 MHz ECLK, but only 0.978V when Curve Optimized.
- The curve now extends well beyond the 5450 MHz Fmax for which there’s no guaranteed operating voltage defined by the factory-fused V/F curve. So, we don’t know if it’s stable there.
Before Ryzen 9000, we could only rely on Curve Optimizer to tune the curve. That meant we could use a positive Curve Optimizer to squeeze higher frequency 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 critical new tool in the overclocking toolbox: Curve Shaper.
PBO 2: 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.
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 frequency regions and three temperatures:
Frequency 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 use Curve Shaper for two reasons:
- Use positive values to improve stability at the upper end of the curve, and
- Claw back the undervolting potential at the lower end of the voltage-frequency curve.
For the first objective, we can use positive Curve Shaper values for high and maximum frequency regions. For the second objective, we can use negative Curve Shaper values for min, low, and medium frequency regions.
Let’s get a bit more practical with the process.
Ryzen 7 9800X3D ECLK & Curve Shaper Tuning Process
Similar to Curve Optimizer, 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 first goal was to find the maximum stable frequency at the upper end of the curve. Here, I found that the first workload to show signs of instability was Y-Cruncher BKT. This is a light all-core workload that boosts the frequency very high. I found it very tricky to get stability over 5.5 GHz even with significantly higher voltage. That’s a bit disappointing given our undervolt yielded 5425 MHz at only 1.12V!
Here’s the resulting curve with an ECLK frequency of 105.5 MHz and a High/Max frequency Curve Shaper of +15. You can see that it starts to diverge from the base ECLK curve at about 5.2 GHz.
The next objective is clawing back the undervolting potential. Here I found that the Y-Cruncher 5B benchmark gave the first signs of instability. That is a pretty heavy dynamic all-core AVX workload. The undervolting headroom was much more satisfactory than the overclocking headroom as I could set a maximum negative Curve Shaper for min, low, and medium frequency.
Here’s the resulting curve with an ECLK frequency of 105.5 MHz, a High/Max frequency Curve Shaper of +15, and a Min/Low/Med frequency Curve Shaper of -30. You can see that we effectively clawed back all the undervolting headroom up to about 5.2 GHz.
Curve Shaper is a very powerful tuning tool, and this example perfectly captures its core strength: adjusting the under- and overvolt at different parts of the curve which maximizes the frequency in light and heavy workloads.
BIOS Settings & Benchmark Results
Upon entering the BIOS
- Go to the Extreme Tweaker menu
- Set Ai Overclock Tuner to EXPO I
- 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
- 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 all, set Low, Med, and High Temperature to Enable
- For min, low, and med frequency, set Sign to Negative and Magnitude to 30
- For high and max frequency, set Sign to Positive and Magnitude to 15
- Enter the DDR and Infinity Fabric Frequency/Timings submenu
Then save and exit the BIOS.
The boost frequency at 1 active thread is about 5636 MHZ and the average boost frequency gradually trails off to 5398 MHz when all cores are active. All eight cores can boost to well beyond 5.7 GHz in single-threaded workloads.
We re-ran the benchmarks and checked the performance increase compared to the default operation.
- Geomean: +7.16%
- PYPrime 32B: +39.27%
- 7-Zip: +10.67%
- IndigoBench (bedroom): +5.93%
- Geekbench 6 (single): +10.94%
- Geekbench 6 (multi): +17.82%
- Cinebench R23 Single: +13.95%
- Cinebench R23 Multi: +13.24%
- CPU-Z V17.01.64 Single: +8.80%
- CPU-Z V17.01.64 Multi: +5.06%
- V-Ray 5: +10.48%
- Corona 10: +7.10%
- AI Benchmark: +20.55%
- Y-Cruncher 5B: 28.31%
- 3DMark Night Raid: +6.56%
- Returnal: +0.92%
- Black Myth: +0.93%
- Tomb Raider: +0.99%
- Final Fantasy XV: +2.61%
Here are the 3DMark CPU Profile scores:
- CPU Profile 1 Thread: +8.05%
- CPU Profile 2 Threads: +7.43%
- CPU Profile 4 Threads: +6.58%
- CPU Profile 8 Threads: +6.83%
- CPU Profile 16 Threads: +4.61%
- CPU Profile Max Threads: +4.55%
Here are the OCCT Benchmark scores:
- SSE Single Thread: +7.79%
- SSE Multi Thread: +8.39%
- AVX Single Thread: +4.80%
- AVX Multi Thread: +7.20%
Here are the AIDA64 memory benchmark scores:
- Memory Read Bandwidth: +32.85%
- Memory Write Bandwidth: +45.42%
- Memory Copy Bandwidth: +31.23%
- Memory Latency: +33.76%
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 +7.16%, and we get a maximum improvement of +39.27% in PYPrime.
When running the OCCT CPU AVX2 Stability Test, the average CPU core effective clock is 5248 MHz with 1.093 volts. The average CPU temperature is 85.6 degrees Celsius. The average CPU package power is 158.0 watts.
When running the OCCT CPU SSE Stability Test, the average CPU core effective clock is 5393 MHz with 1.206 volts. The average CPU temperature is 89.2 degrees Celsius. The average CPU package power is 166.5 watts.
AMD Ryzen 7 9800X3D: Conclusion
Alright, let us wrap this up.
The Ryzen 7 9800X3D represents AMD’s best-yet for Zen 5 desktop processors. For the first time, the X3D also gets official overclocking support (even though we could also overclock the 5800X3D and 7800X3D).
Undervolting and overclocking the Ryzen 7 9800X3D is really just like the other single-CCD Ryzen 9000 processors. The undervolting margin of this specific Ryzen 7 9800X3D is pretty amazing. I can run OCCT AVX2 all-core over 5.2 GHz with less than 1.1V and the SSE workload at over 5.4 GHz with less than 1.2V – that’s pretty spectacular. The overclocking potential is there as well, as we could easily reach over 5.9 GHz. However, for daily systems, our maximum overclock with Eclk is limited by the light high-frequency all-core AVX workloads.
Anyway, that’s it for this guide.
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!
R1 Fast
Pieter, I’m not sure how your 105.5 MHZ ECLK + CS (-30/+15) is maxing vcore at 1.37v. When I follow your guide on my X870E Taichi, vcore is maxing at 1.392 and this is just at Windows startup.
Is this due to differences in OEM voltage curve settings? Meaning Curve Shaper of -30 on min/low/med +15 on high/max for Asus is lower on the VF curve than ASRock, or something?
Is there a better way to reduce max vcore than simply reducing the +15 on high/max CS values? That does reduce it, but also introduces instability.
Also is there a reason the built-in PBO profiles go to -40 but curve shaper only goes to -30? And is this OEM specific?
Pieter
The V/F curve I’m showing in the guide is when all cores are active. The 1.39V you’re seeing is, I assume, just the outright maximum voltage which would occur in light or idle 1T. For my system, the maximum voltage would be around 1.45V which is the limit for Ryzen CPUs.
There’s no way to use AMD tools to reduce the maximum voltage – it will always be 1.45V. However, you can prevent the CPU from boosting to those voltages by restricting the maximum frequency using a negative FMax. Of course, your boost frequency will also be lower.
Alternatively, you can also try configuring a negative voltage offset from the voltage regulator. That will cause the output voltage to the CPU to be lower than what the CPU requested. However, it may cause instability and/or other performance-inhibiting issues like clock stretching.
Daniel
with +200mhz for cpu, it does not appear to boost cpu frequency with my setup.. followed your instructions and using Asus ROG X870E Hero
Pieter
You might need to also use Curve Optimizer to see the frequency increases
Alex PL
Very nice eCLK OC but just for the benchmarks. It’s not stable for daily. Negative voltage offset in Curve Shaper med frequency is too big. Will not pass at least Y-cruncher SVT and FFTv4 stress test. Of course I mean my CPU, but I doubt your’s will do. Increasing med frequency CSh will reduce all core boost in most benchmarks.
Lech
For the love of god please use a faster GPU for the games or lower the settings.
JSyrup
At least appreciate the overclocking effort and reproducible format Pieter has put up. But yes, you have a valid point about the lack of GPU horsepower used here.