How Core Parking Impacts Multi-CCD CPU Benchmarks
This article explores the impact of CPU core parking on multi-CCD (Core Complex Die) processors during hardware benchmarking. It covers the mechanics of core parking, the architectural layout of multi-CCD chips, how operating system schedulers manage these cores, and the resulting performance anomalies—both positive and negative—that occur during synthetic and real-world benchmark tests.
The Mechanics of Multi-CCD CPUs and Core Parking
Multi-CCD processors, such as high-end AMD Ryzen CPUs, split their processing cores across two or more separate silicon dies. These dies communicate via an interconnect, which introduces a slight delay known as cross-CCD latency.
Core parking is an operating system feature that dynamically puts idle CPU cores into a deep sleep state. While originally designed to save power, modern hardware utilizes core parking as a performance optimization tool. On multi-CCD processors, the operating system parks an entire CCD to force specific workloads onto a single die, thereby avoiding the performance penalty of cross-CCD communication.
Positive Impacts on Gaming and Light Benchmarks
During gaming benchmarks or lightly-threaded tests, core parking significantly boosts performance on multi-CCD processors. Games are highly sensitive to memory and core-to-core latency, and they rarely utilize more than eight cores effectively.
When a gaming benchmark is launched, the OS scheduler parks the secondary CCD. This forces all game threads onto a single CCD. This behavior is critical for asymmetrical processors like the AMD Ryzen 9 7950X3D, where only one CCD features extra 3D V-Cache. By parking the standard CCD, the benchmark runs exclusively on the cache-heavy die, resulting in substantially higher average frame rates and improved 1% low frame times.
Thermal Headroom and Boost Clock Skewing
Core parking also alters how a processor manages power and heat during a benchmark. Modern CPUs boost their clock speeds dynamically based on thermal and electrical headroom.
When an entire CCD is parked during a lightly-threaded benchmark, the processor's total power consumption drops. The CPU redirects this saved power and thermal capacity to the active CCD. Consequently, the active cores can sustain higher boost clock speeds for longer durations than they could if the second CCD was awake and idling. This results in higher single-core and light-workload benchmark scores.
Negative Impacts on Multi-Threaded Benchmarks
While beneficial for gaming, core parking can degrade performance in heavy, multi-threaded rendering or compute benchmarks like Cinebench, Blender, and HandBrake. These benchmarks require every available core to achieve maximum scores.
Core parking hurts multi-threaded benchmarks in two ways:
- Unparking Latency: It takes time (measured in milliseconds) to wake a parked core. In bursty benchmarks that rapidly switch between idle and full load, the delay in unparking the second CCD lowers the overall score.
- Scheduler Misclassification: If the operating system fails to recognize a benchmark as a high-load application, it may leave the secondary CCD parked. The benchmark will then run on only half of the processor's cores, cutting the final score nearly in half.
Ensuring Benchmark Consistency
Core parking introduces a major variable that can ruin benchmark repeatability. Background tasks can accidentally wake parked cores during a gaming test, causing threads to spill over onto the second CCD and tanking the benchmark score. Conversely, broken chipset drivers or incorrect Windows Game Bar settings can prevent cores from parking or unparking when they should.
To ensure accurate and repeatable results when benchmarking multi-CCD hardware, testers must strictly control the testing environment:
- Verify Drivers: Ensure the latest motherboard BIOS and CPU chipset drivers are installed, as these contain the rules for the OS scheduler.
- Check Power Plans: Use the Balanced power plan in Windows for AMD X3D processors, as the High Performance plan disables core parking entirely and degrades gaming benchmark results.
- Use Manual Overrides: If the OS scheduler fails to behave consistently, benchmarkers must use third-party utilities like Process Lasso or ParkControl to manually lock threads to specific CCDs or forcefully disable core parking for heavy compute tests.