Isolating CPU and GPU Bottlenecks in Hardware Benchmarks

Accurately benchmarking computer hardware requires understanding which component is limiting your system's performance at any given moment. This article explains how to isolate Central Processing Unit (CPU) bottlenecks from Graphics Processing Unit (GPU) bottlenecks during testing. By monitoring real-time hardware utilization metrics, manipulating screen resolutions, adjusting graphics settings, and using dedicated synthetic tests, you can definitively identify whether your processor or graphics card is the primary factor holding back your system's performance.

Monitor Real-Time Hardware Utilization

Before changing any settings, you must establish a baseline by observing how your hardware behaves under load. Use an On-Screen Display (OSD) monitoring tool, such as MSI Afterburner paired with RivaTuner Statistics Server, to track metrics in real time.

  • Identifying a GPU Bottleneck: Look at the GPU usage percentage. If your GPU utilization is consistently between 95% and 100%, your system is GPU-bound. The graphics card is working at its maximum capacity, and the CPU is waiting for it to finish rendering frames.
  • Identifying a CPU Bottleneck: If your GPU usage drops below 90% (while frame rates are uncapped), you are likely facing a CPU bottleneck. Note that overall CPU usage does not need to be at 100% to bottleneck a system. Because many games and applications only utilize a few processor cores, you must monitor per-core utilization. If one or two CPU threads are maxed out at 95% to 100% while GPU usage is low, the CPU is the bottleneck.

How to Isolate the CPU

To benchmark your CPU’s maximum capability, you must remove the GPU from the equation. You do this by drastically reducing the graphical workload, forcing the GPU to render frames as fast as the CPU can feed them data.

  1. Lower the Resolution: Drop the display resolution to 1920x1080 (1080p) or 1280x720 (720p). Lower resolutions require significantly fewer pixels to be rendered by the GPU, shifting the workload entirely to the processor.
  2. Minimize Graphics Settings: Set textures, shadows, anti-aliasing, ambient occlusion, and ray tracing to their lowest possible settings.
  3. Uncap Frame Rates: Turn off V-Sync, G-Sync, FreeSync, and any in-game frame rate limiters.

In this scenario, your GPU usage should plummet. The resulting frame rate is the absolute maximum your CPU can achieve in that specific application.

How to Isolate the GPU

To benchmark the GPU and ensure the CPU is not holding it back, you need to overwhelm the graphics card with visual data. This slows down the frame rate, giving the CPU plenty of breathing room between frames.

  1. Increase the Resolution: Set the resolution to 2560x1440 (1440p) or 3840x2160 (4K). If you do not have a high-resolution monitor, use Virtual Super Resolution (AMD) or Dynamic Super Resolution (Nvidia) in your graphics driver control panel to render the workload at a higher internal resolution.
  2. Maximize Graphics Settings: Set all visual settings to "Ultra" or "Maximum." Enable heavy graphical features like ray tracing and high-level anti-aliasing.
  3. Disable Upscalers: Turn off DLSS, FSR, or XeSS, as these technologies lower the internal rendering resolution and can reintroduce a CPU bottleneck.

When configured correctly, your GPU utilization will lock at 99% to 100%, and your CPU usage will drop. Any changes in performance during this test are strictly representative of the GPU's capabilities.

Analyze Frame Times and 1% Lows

Average frame rates (FPS) do not tell the whole story when isolating bottlenecks. You must also record 1% low and 0.1% low FPS metrics, alongside a frame time graph.

  • CPU Bottleneck Behavior: When a CPU is overwhelmed, it struggles to deliver frame data at a consistent pace. This manifests as spikes on the frame time graph, resulting in visible micro-stuttering and very poor 1% and 0.1% low FPS numbers, even if the average FPS seems high.
  • GPU Bottleneck Behavior: When a GPU is maxed out, the frame rate may be low, but the frame time graph will remain relatively flat and consistent. The gap between the average FPS and the 1% low FPS will be much smaller than in a CPU-bound scenario.

Use Synthetic Benchmarks to Eliminate Variables

In-game benchmarks often utilize both the CPU and GPU simultaneously, which can muddy the results. To completely isolate the components, use synthetic benchmarking software designed to target one piece of hardware at a time.

  • For CPU Isolation: Use Cinebench, Prime95, or the 3DMark CPU Profile test. These applications bypass the GPU entirely, using pure mathematical and rendering workloads to test single-core and multi-core processor performance.
  • For GPU Isolation: Use Unigine Superposition or FurMark. If using 3DMark (such as the Time Spy or Fire Strike tests), ignore the overall score and look exclusively at the "Graphics Score," which isolates GPU performance from the physics/CPU portion of the test.