Feed Me: Infinity Fabric Requires More Power

When moving from a ring bus to move data between cores and the memory controllers to a mesh or chiplet system, communication between the cores gets a lot more complex. At this point each core or core subset has to act like a router, and decide the best path for the data to go if multiple hops are required to reach the intended target. As we saw with Intel’s MoDe-X mesh at the launch of Skylake-X, the key here is to both avoid contention for the best performance and reduce wire lengths to decrease power. It turns out that in these systems, the inter-core communication technique starts eating up a lot of power, and can consume more power than the cores.

To describe chip power, all consumer processors have a rated ‘TDP’, or thermal design power. Intel and AMD measure this value differently, based on workloads and temperatures, but the technical definition of TDP is the ability of the cooler to dissipate this much thermal energy when the processor is fully loaded (and usually defined at base frequency, not all-core turbo). Actual power consumption might be higher, based on losses by the power delivery, or thermal dissipation through the board, but for most situations TDP and power consumption are broadly considered equal.

This means that the TDP ratings on modern processors, such as 65W, 95W, 105W, 140W, 180W, and now 250W, should broadly indicate the peak sustained power consumption. However, as explained in the first paragraph, not all that power gets to go to pushing frequency in the cores. Some has to be used in the memory controllers, in the IO, into integrated graphics (for the chips that have them), and now the core-to-core interconnect becomes a big part of this. Just how much should be something eye-opening.

For most CPUs, we have the ability to measure either per-core or all-core power, as well as the power of the whole chip. If we subtract the 'core' power from the 'chip' power, we are left with a number of things: DRAM controller power plus interconnect power, and in some cases, L3 power as well.

To see the scale of this, let us start with something straight-forward and known to most users. Intel’s latest Coffee Lake processors, such as the Core i7-8700K, use what is known as a ring-bus design. These processors use a single ring to connect each of the cores and the memory controller – if data has to be moved, it gets placed into the ring and shuttles along to go to where it is needed. This system has historically been called the ‘Uncore’, and can run at a different frequency to the main cores, allowing for its power to scale with what is available. The power distribution looks like this:

Despite the 95W TDP, this processor at stock frequencies consumes around 125 W at load, beyond its TDP (which is defined at base frequency). However it is more the ratio of the uncore to the total power we are concerned with: at light loading, the uncore is only 4% of the total power, but that rises to 7-9% as we load up the cores. For argument, let us call this a maximum of 10%.

Now let us go into something more meaty: Intel’s Skylake-X processors. In this design, Intel uses its new ‘mesh’ architecture, similar to MoDe-X, whereby each subset of the processor has a small router / crossbar partition that can direct a data packet to the cores around it, or to itself, as required.

This design allows the processor to scale, given that ring based systems occur additional latency beyond about 14 cores or so (going by how Intel intercepted the mesh design). However, the mesh runs at a lower latency than the ring systems that Intel used to use, and they also consume a lot more power.

In this setup, we see the power that isn't for the cores starting at 20% of the total chip power, moving up to 25-30% as more cores are loaded. As a result, around one-quarter to one-third of the power on the chip is being used for core-to-core and core-to-memory communication, as well as IO. This is despite the fact that the mesh is often cited as one of the key criticisms of the performance of this processor: the benefit of being able to scale out beyond 24 processors properly is the reason why Intel has gone down this path.

For AMD, the situation is a bit mix and match. With a single four-core complex, communication between cores is relatively simple and uses a centralized crossbar. When dealing with so few cores, the communication method is simple and light. However, within two sets of complexes on the same silicon, or the memory controller, the interconnect comes into play. This is not so much a ring, but is based on an internal version of Infinity Fabric (IF).

The IF is designed to be scalable across cores, silicon, and sockets. We can probe what it does within a single piece of silicon by looking directly at the Ryzen 7 2700X, which has a TDP of 105W.


*IF Power should be 'Non-Core' power, which includes IF + DRAM controller + IO

AMD’s product here gives two interesting data points. Firstly, when the cores are weakly loaded, the IF + DRAM controller + IO accounts for a massive 43% of the total power of the processor. This is compared to 4% for the i7-8700K and 19% for the i9-7980XE. However, that 43% reduces down to around 25% of the full chip, but this is still on par with the bigger mesh based processor from Intel.

Another interesting point is that the combined non-core power doesn’t change that much scaling up the cores, going from ~17.6W to ~25.7W. For the big Intel chip, we saw it rise from ~13.8W up to beyond 40W in some cases. This brings the question as to if Intel’s offering can scale in power at the low end, and if AMD’s non-core power as an initial ‘power penalty’ to pay before the cores start getting loaded up.

With this data, let us kick it up a notch to the real story here. The Ryzen Threadripper 2950X is the updated 16-core version of Threadripper, which uses a single IF link between the two silicon dies to talk between the sets of core complexes.

As shown on the diagram, the red line represents the IF link combined with the DRAM controller and IO. In this case, the non-core we measure includes the intra-silicon interconnect as well as the inter-silicon interconnect.


*IF Power should be 'Non-Core' power, which includes IF + DRAM controller + IO

In percentage of power, the non-core power consumes 59% of the total power consumption of the chip when loaded at two threads. So even though both threads are located on the same core on the same CCX, because it needs to have access to all of the memory of the system, the die-to-die silicon link is enabled as well as the intra-silicon links are all fired up.

However, the amount of power consumed by the IF + DRAM controller + IO, as the core loading scales, does not increase all that much, from 34W to 43W, slowly reducing to around 25% of the total chip power, similar to the 2700X. It is just that initial bump that screams a lot, because of the way that that core still needs access to all the memory bandwidth available.

Now we should consider the 2990WX. Because all four silicon dies are enabled on the package, and each die needs an IF interconnect to each other die, there are now six IF links to fire up:

There’s a lot of red in that diagram. It is noteworthy that two of the silicon dies do not have DRAM attached to them, and so when only a few cores are enabled, theoretically AMD should be able to power down those IF links as they would only cause additional latency hops if other IF links are congested. In fact, we get something very odd indeed.


*IF Power should be 'Non-Core' power, which includes IF + DRAM controller + IO

First, let us start with the low-loading metrics. Here the non-core power is consuming 56.1W from the total 76.7W power consumption, a massive 73% of the total power consumption of the processor. If a single link on the 2950W was only 34W, it is clear that the 56W here means that more than a single IF link is being fired up. There are perhaps additional power management opportunities here.

Moving through the stack, you will notice that our 2990WX sample never goes near the 250W rated TDP of the processor, actually barely hitting 180W at times. We are unsure why this is. What we can say is that as loading increases, the total contribution that the non-core power gives does decrease, slowly settling around 36%, varying between 35% and 40% depending on the specific workload. This is a rise up from the 25% we saw in the 2700X and 2950X.

So given that this is the first review with our EPYC 7601 numbers, how about we take it up another notch? While based on the older first generation Zen cores, EPYC has additional memory controllers and IO to worry about, all of which fall under the uncore power category.

Moving into the power consumption numbers, and similar to the 2990WX as we load up all the cores, the values do get a little bit squirrely. However the proportion numbers are staggering.


*IF Power should be 'Non-Core' power, which includes IF + DRAM controller + IO

At low loading, out of a total package power of 74.1W, the non-core power consumes 66.2W, or a staggering 89% ! As we go up through the cores, that 66.2W becomes up to 90W in places, but even at its lowest point, the IF accounts for 50% of the power of the total chip. The cores are barely getting 90W out of the 180W TDP!

This raises an interesting point – if we are purely considering the academic merits of one core compared to another, does the uncore power count to that contribution? For a real-world analysis, yes, but for a purely academic one? It also means I can claim the following prophecy:

After core counts, the next battle will be on the interconnect. Low power, scalable, and high performance: process node scaling will mean nothing if the interconnect becomes 90% of the total chip power.

Precision Boost 2, Precision Boost Overdrive, and StoreMI Test Setup and Comparison Points
Comments Locked

171 Comments

View All Comments

  • MattZN - Monday, August 20, 2018 - link

    If its idling at 80-85W that implies you are running the memory fabric at 2800 or 3000MHz or higher. Try running the fabric at 2666MHz.

    Also keep in mind that a 2990WX running all 64 threads with a memory-heavy workload is almost guaranteed to be capped out by available memory bandwidth, so there's no point overclocking the CPU for those sorts of tests. In fact, you could try setting a lower PPT limit for the CPU core along with running the memory at 2666... you can probably chop 50-100W off the power consumption without changing the test results much (beyond the difference between 3000 and 2666).

    It's a bit unclear what you are loading the threads with. A computation-intensive workload will not load down the fabric much, meaning power will shift to the CPU cores and away from the fabric. A memory-intensive workload, on the otherhand, will stall-out the CPU cores (due to hitting the memory bandwidth cap that 4 memory channels gives you), and yet run the fabric at full speed. This is probably why you are seeing the results you are seeing. The CPU cores are likely hitting so many stalls they might as well be running at 2.8GHz instead of 3.4GHz, so they won't be using nearly as much power as you might expect.

    -Matt
  • XEDX - Monday, August 20, 2018 - link

    What happened to the Chromium compile rate for the 7980XE? On it's own review posted on Sep 25th 2017, it achieved 36.35 compiles per day, but in this review it dropped all the way down to 21.1.
  • jcc5169 - Saturday, August 25, 2018 - link

    Intel Will Struggle For Years And AMD Will Reap The Benefits-- SegmentNext https://segmentnext.com/
  • SWAPNALI - Tuesday, August 28, 2018 - link

    nice place here thanks alot for this information please do more post here
    <a href="http://clash-of-royale.com/">play clash of royale</a>
  • Relic74 - Wednesday, August 29, 2018 - link

    Regardless of the outcome, I went ahead and bought the 32 Core version. As I run SmartOS, an OS designed to run and manage Virtual Machines, I decided to go this route over the Epyc 24. My setup includes the new MSI MEG X399, 32 Core TR, 128GB DDR4 RAM, 3x Vega Frontier (used, $1000 for all three, no one wants them but I love them), 1 X Nvidia Titan Z (used for only $700, an amazing find from a pawn shop, did not know what he had, had it marked as an XP). Storage is 2 x 1TB Samsung 970 Pro in Raid 0 and 5x 8TB SATA in Raid 5 with 8GB of cache on card.

    The system is amazing and cost me much, much less than the iMac Pro I was about to buy. Now though, I can run any OS in VM, including OSX, with a designated GPU per VM and cores allocated to them. This setup is amazing, SmartOS is amazing, I have stopped running OS's with every application installed, Instead I create single purpose VM's and just install one or maybe two applications per. So for instance when I'm playing a game like DCS, a fantastic flight simulator, only has DCS and Steam installed on the VM. Allowing for the best performance possible, no, the lost of any performance by running things in VM are so minuscule that it's a none issue. DCS with the Titan V runs at over 200 FPS at 4K with everything turned to their max values. I have to actually cap games to my gaming monitors 144Hz refresh rate. Not only that but I can be playing the most demanding game their is, even in VR, while encoding a media file, while rendering something in Blender, while compiling an application, all tasks running under their own VM like a orchestra of perfection.

    Seriously, I will never go back to a one OS at a time machine again, not when SmartOS exists and especially not when 32 Cores are available at your command. In fact, anyone who buys this CPU and just runs one single OS at a time is an idiot as you will never, ever harness it's full intention as no one single application really can at the moment or at least not to the point where it's worth doing it.

    Most games dont need more than 4 cores, most design applications can't even use more than 2 cores, rendering applications use more of the GPU than CPU, in fact the only thing that really tasks my CPU is SmartOS that is controlling everything but even that doesn't need more than 6 cores to function perfectly, heck, I even had it at 12 cores but it didn't utilize it. So I have cores coming out of the yin-yang and more GPU's than I know what to do with. Aaaaahhhh poor, poor me.

    This computer will be with me for at least 10 years without ever feeling that I need an upgrade, which is why I spent the money, get it right the first time and than leave it alone I say.

    Oh and the memory management for SmartOS is incredible, I have set it up where if a VM needs more RAM, it will just grab it from another that isn't using it at the moment, it's all dynamic. Man, I am in love.

    Anyway.....
  • Phaedra - Sunday, March 3, 2019 - link

    Hi Relic74,

    I enjoyed reading your lengthy post on the technical marvel that is SmartOS and the 32 Core TR.

    I am very much interested in the technical details of how you got SmartOS to work with AMD hardware. Which version of SmartOS, Windows, KVM (or BHYVE) with PCI passthrough etc?

    I am in the process of preparing my own threadripper hyper computer and would love some advice regarding the KVM + PCI passthrough process.

    You mention gaming in a VM so I assume that you used a Windows 10 guest via KVM with PCI passthrough?

    The following says SmartOS doesn't support KVM on AMD hardware: https://wiki.smartos.org/display/DOC/SmartOS+Techn...

    Did you build the special module with amd-kvm support:
    https://github.com/jclulow/illumos-kvm/tree/pre-ep...
    or
    https://github.com/arekinath/smartos-live

    I would appreciate any insight or links to documentation you could provide. I am familiar with Windows/Linux/BSD so you can let me have the nitty-gritty details, thanks
  • gbolcer - Wednesday, September 19, 2018 - link

    Curious why virtualization disabled?
  • Ozymankos - Sunday, January 27, 2019 - link

    Your tests are typical for a single core machine which is laughable
    please try to download a game with steam,play some music,watch tv on a tvtuner card,play a game on 6 monitors or 8 or 4 ,do some work like computing something in the background(not virus scanners,something intelligent like life on other planets)
    then you shall see the truth
  • intel352 - Thursday, July 18, 2019 - link

    Old article obviously, but wth, numerous benchmark graphics are excluding 2950x in the results. Pretty bad quality control.
  • EthanWalker28 - Monday, February 24, 2020 - link

    If you are looking for custom writing firm to help you out with your academic writing issues, then you have just found the right one. Now, you don’t have to worry about getting a failing mark simply because you have been accused of plagiarizing someone else’s work. Check this <a href="https://ewriters.pro/" rel="nofollow">ewriters.pro</a> Order essay online staying 100% safe and confidential.

Log in

Don't have an account? Sign up now