Core to Core to Core: Design Trade Offs

AMD’s approach to these big processors is to take a small repeating unit, such as the 4-core complex or 8-core silicon die (which has two complexes on it), and put several on a package to get the required number of cores and threads. The upside of this is that there are a lot of replicated units, such as memory channels and PCIe lanes. The downside is how cores and memory have to talk to each other.

In a standard monolithic (single) silicon design, each core is on an internal interconnect to the memory controller and can hop out to main memory with a low latency. The speed between the cores and the memory controller is usually low, and the routing mechanism (a ring or a mesh) can determine bandwidth or latency or scalability, and the final performance is usually a trade-off.

In a multiple silicon design, where each die has access to specific memory locally but also has access to other memory via a jump, we then come across a non-uniform memory architecture, known in the business as a NUMA design. Performance can be limited by this abnormal memory delay, and software has to be ‘NUMA-aware’ in order to maximize both the latency and the bandwidth. The extra jumps between silicon and memory controllers also burn some power.

We saw this before with the first generation Threadripper: having two active silicon dies on the package meant that there was a hop if the data required was in the memory attached to the other silicon. With the second generation Threadripper, it gets a lot more complex.

On the left is the 1950X/2950X design, with two active silicon dies. Each die has direct access to 32 PCIe lanes and two memory channels each, which when combined gives 60/64 PCIe lanes and four memory channels. The cores that have direct access to the memory/PCIe connected to the die are faster than going off-die.

For the 2990WX and 2970WX, the two ‘inactive’ dies are now enabled, but do not have extra access to memory or PCIe. For these cores, there is no ‘local’ memory or connectivity: every access to main memory requires an extra hop. There is also extra die-to-die interconnects using AMD’s Infinity Fabric (IF), which consumes power.

The reason that these extra cores do not have direct access is down to the platform: the TR4 platform for the Threadripper processors is set at quad-channel memory and 60 PCIe lanes. If the other two dies had their memory and PCIe enabled, it would require new motherboards and memory arrangements.

Users might ask, well can we not change it so each silicon die has one memory channel, and one set of 16 PCIe lanes? The answer is that yes, this change could occur. However the platform is somewhat locked in how the pins and traces are managed on the socket and motherboards. The firmware is expecting two memory channels per die, and also for electrical and power reasons, the current motherboards on the market are not set up in this way. This is going to be an important point when get into the performance in the review, so keep this in mind.

It is worth noting that this new second generation of Threadripper and AMD’s server platform, EPYC, are cousins. They are both built from the same package layout and socket, but EPYC has all the memory channels (eight) and all the PCIe lanes (128) enabled:

Where Threadripper 2 falls down on having some cores without direct access to memory, EPYC has direct memory available everywhere. This has the downside of requiring more power, but it offers a more homogenous core-to-core traffic layout.

Going back to Threadripper 2, it is important to understand how the chip is going to be loaded. We confirmed this with AMD, but for the most part the scheduler will load up the cores that are directly attached to memory first, before using the other cores. What happens is that each core has a priority weighting, based on performance, thermals, and power – the ones closest to memory get a higher priority, however as those fill up, the cores nearby get demoted due to thermal inefficiencies. This means that while the CPU will likely fill up the cores close to memory first, it will not be a simple case of filling up all of those cores first – the system may get to 12-14 cores loaded before going out to the two new bits of silicon.

The AMD Threadripper 2990WX 32-Core and 2950X 16-Core Review Precision Boost 2, Precision Boost Overdrive, and StoreMI
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