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

  • Jorgp2 - Wednesday, August 14, 2024 - link

    Could the high latencies be the hardware bug which caused the delay?
  • Slash3 - Wednesday, August 14, 2024 - link

    It's almost certainly a core wake delay from the use of the Balanced power profile.

    Staying on Balanced allows core parking for power savings and effective CPPC scheduling, but at the expense of constant core sleep/wake cycles. Switching to High Performance should solve the inter-CCD delay (cores do not full sleep, plus the Infinity Fabric does not downclock), but at the expense of disabling the CPPC scheduler. Easy to test.
  • aron9621 - Sunday, August 18, 2024 - link

    With the High performance power profile selected the core to core latency numbers stay the same. Just tested it on my 9950x.
  • Axiomatic - Wednesday, August 14, 2024 - link

    I'll keep my 7950x for now. Not liking the PPM driver requirement. I wonder how much better the new linux 6.12 kernel will perform with the 9950x with its new AMD specific cpu scheduler? It certainly doesn't need the PPM driver.
  • GeoffreyA - Wednesday, August 14, 2024 - link

    Thanks, Gavin. Great review, and well written: I chuckled quite a few times with the humorous commentary, such as, "Winning comes at a cost," or it takes "every joule in sight."

    As for the PPM issues, that's poor testing on AMD's part, but I'm sure they'll fix it soon. Reminds me of when Ryzen first came out, and there were deficits in games because of suboptimal scheduling. Otherwise, strong CPUs.
  • Kamen Rider Blade - Wednesday, August 14, 2024 - link

    Process Lasso is your friend, I wouldn't trust Intel or AMD to properly park my Processes.
  • dwillmore - Wednesday, August 14, 2024 - link

    It might be nice to see the results of y-cruncher that support Zen-5. You're using the last version *before* support was added. It's also from September of 2023.
  • 529th - Wednesday, August 14, 2024 - link

    Could be related to what Jay2cents discovered,
    https://www.youtube.com/watch?v=4wdQpVcL_a4
  • 529th - Wednesday, August 14, 2024 - link

    Sorry, the YT vid is about Core Parking fix and Gaming
  • Iketh - Wednesday, August 14, 2024 - link

    Small gripe. You use "here" far too often. It never needs said at all.

Log in

Don't have an account? Sign up now