Core-to-Core Latency: Zen 5 Gets Weird

As the core count of modern CPUs is growing, we are reaching a time when the time to access each core from a different core is no longer a constant. Even before the advent of heterogeneous SoC designs, processors built on large rings or meshes can have different latencies to access the nearest core compared to the furthest core. This rings true especially in multi-socket server environments.

But modern CPUs, even desktop and consumer CPUs, can have variable access latency to get to another core. For example, in the first generation Threadripper CPUs, we had four chips on the package, each with 8 threads, and each with a different core-to-core latency depending on if it was on-die or off-die. This gets more complex with products like Lakefield, which has two different communication buses depending on which core is talking to which.

If you are a regular reader of AnandTech’s CPU reviews, you will recognize our Core-to-Core latency test. It’s a great way to show exactly how groups of cores are laid out on the silicon. This is a custom in-house test, and we know there are competing tests out there, but we feel ours is the most accurate to how quick an access between two cores can happen.

Looking at the above latency matrix of the Ryzen 9 9950X, we observe that the lowest latencies naturally occur between adjacent cores on the same CCX. The core pairs such as 0-1, 1-2, and 2-3 consistently show latencies in the 18.6 to 20.5 nanoseconds range. This is indicative of the fast L3 cache shared within the CCX, which ensures rapid communication between the inner cores on the same complex.

Compared to the Ryzen 9 7950X, we are seeing a slight increase in latencies within a single CCX. The SMT "advantage", where two logical cores sharing a single physical core have a lower latency, appears to be gone. Instead, latencies are consistently around 20ns from any logical core to any other logical core within a single CCX. That average is slightly up from 18ns on the 7950X, though it's not clear what the chief contributing factor is.

More significantly – and worryingly so – are the inter-CCD latencies. That is, the latency to go from a core on one CCD to a core on the other CCD. AMD's multi-CCD Ryzen designs have always taken a penalty here, as communicating between different CCDs means taking a long trek through AMD's Infinity Fabric to the IOD and back out to the other CCD. But the inter-CCD latencies are much higher here than we were expecting.

For reference, on the Ryzen 9 7950X, going to another CCD is around 76ns. But in Ryzen 9 9950X, we're seeing an average latency of 180ns, over twice the cost of the previous generation of Ryzen. Making this all the more confusing, Granite Ridge (desktop Ryzen 9000) reuses the same IOD and Infinity Fabric configuration as Raphael (Ryzen 7000) – all AMD has done is swap out the Zen 4 CCDs for Zen 5 CCDs. So by all expectations, we should not be seeing significantly higher inter-CCD latency here.

Our current working theory is that this is a side-effect of AMD's core parking changes for Ryzen 9000. That cores are being aggressively put to sleep, and that as a result, it's taking an extra 100ns to wake them up. If that is correct, then our core-to-core latency test is just about the worst case scenario for that strategy, as it's sending data between cores in short bursts, rather than running a sustained workload that keeps the cores alive over the long-haul.

At this point, we're running some additional tests on the 9950X without AMD's PPM provisioning driver installed, to see if that's having an impact. Otherwise, these high latencies, if accurate for all workloads, would represent a significant problem for multi-threaded workloads that straddle the Infinity Fabric.

Test Bed & A Note on Raptor Lake Woes Power Consumption
Comments Locked

123 Comments

View All Comments

  • fatweeb - Thursday, August 15, 2024 - link

    Shocking if true.
  • Spladam - Sunday, August 18, 2024 - link

    This changes everything.
  • temps - Thursday, August 15, 2024 - link

    don't pay much attention to what gamers have to say about processors
  • Gigaplex - Thursday, August 15, 2024 - link

    Unless you're a gamer and want a CPU for gaming
  • temps - Friday, August 16, 2024 - link

    In which case you already know what to buy and shouldn't even be looking at high end processors anyway
  • eloyard - Friday, August 16, 2024 - link

    They know... because of benchmarks, you know? That's why tests are made and that's why people look at them.
  • Dante Verizon - Thursday, August 15, 2024 - link

    Chips and cheese has done an in-depth analysis that shows several bottlenecks and situations where Zen5 is not only inferior to Zen4, but far inferior
  • krazyfrog - Wednesday, August 14, 2024 - link

    "I saw data that upset me greatly because it didn't align with my preconceived notions so I started looking for other places to have them validated."
  • cryosx - Sunday, August 25, 2024 - link

    you mean AMD's nonsense and bullshit marketing
  • Josh128 - Wednesday, August 14, 2024 - link

    Why 14600K instead of 14900K for first 10 or so benchmarks? Where was the 14900K?

Log in

Don't have an account? Sign up now