Investigating Performance of Multi-Threading on Zen 3 and AMD Ryzen 5000
by Dr. Ian Cutress on December 3, 2020 10:00 AM EST- Posted in
- CPUs
- AMD
- Zen 3
- X570
- Ryzen 5000
- Ryzen 9 5950X
- SMT
- Multi-Threading
Gaming Performance (Discrete GPU)
For our gaming tests, we are using our AMD Ryzen 9 5950X paired with an NVIDIA RTX 2080 Ti graphics card. Our standard test suite consists of 12 titles, tested at four configurations:
- Stage 1: Actual Gaming (1080p Maximum Quality, or equivalent)
- Stage 2: All About Pixels (‘4K Minimum’ Quality)
- Stage 3: Medium Low (‘1440p Minimum’)
- Stage 4: Lowest Lows (720p Minimum or lower)
The final three settings are a set of CPU-limited gaming, and help find the limit of where we move from CPU limited to GPU limited. Some users baulk at this testing finding it irrelevant, however these configurations have been widely requested over the years. The contraire to this testing is the first setting, at 1080p Maximum: this being requested given that 1080p is the most popular gaming resolution, and Maximum Quality because this graphics card should be able to handle almost everything at that resolution at very playable framerates.
All the details for our gaming tests can be found in our #CPUOverload article.
Stage 1: Actual Gaming AMD Ryzen 9 5950X, SMT On vs SMT Off |
|||
AnandTech | Settings | Average FPS |
95th Percentile |
Chernobylite | 1080p Max | 100% | - |
Civilization 6 | 1080p Max | 103% | - |
Deus Ex: MD | 1080p Max | 99% | 100% |
Final Fantasy 14 | 1080p Max | 102% | - |
Final Fantasy 15 | 8K Standard | 100% | 99% |
World of Tanks | 1080p Max | 100% | 102% |
World of Tanks | 4K Max | 103% | 102% |
Borderlands 3 | 1080p Max | 101% | 103% |
F1 2019 | 1080p Ultra | 103% | 106% |
Far Cry 5 | 1080p Ultra | 104% | 104% |
GTA V | 1080p Max | 99% | 100% |
RDR 2 | 1080p Max | 100% | 100% |
Strange Brigate | 1080p Ultra | 101% | 101% |
In real-world gaming situations, there’s very little to pick between having SMT enabled or disabled. Almost universally it is either beneficial or a smidgen better to have it enabled, with F1 2019, Civilization 6, and Far Cry 5 seemingly the best recipients. I’ve also added in the Stage 3 result from World of Tanks, just because that benchmark doesn’t really have a proper settings menu.
Stage 2: All About Pixels AMD Ryzen 9 5950X, SMT On vs SMT Off |
|||
AnandTech | Settings | Average FPS |
95th Percentile |
Chernobylite | 4K Low | 99% | - |
Civilization 6 | 4K Min | 105% | - |
Deus Ex: MD | 4K Min | 98% | 100% |
Final Fantasy 14 | 4K Min | 102% | - |
Final Fantasy 15 | 4K Standard | 100% | 100% |
Borderlands 3 | 4K Very Low | 101% | 104% |
F1 2019 | 4K Ultra Low | 100% | 100% |
Far Cry 5 | 4K Low | 101% | 100% |
GTA V | 4K Low | 100% | 101% |
RDR 2 | 8K Min | 100% | 100% |
Strange Brigate | 4K Low | 100% | 100% |
With our high resolution settings with minimal quality, there is only one outlier in Civilization 6 on the average frame rates, which seem to be a bit higher when SMT is enabled.
Stage 3: Medium Low AMD Ryzen 9 5950X, SMT On vs SMT Off |
|||
AnandTech | Settings | Average FPS |
95th Percentile |
Chernobylite | 1440p Low | 100% | - |
Civilization 6 | 1440p Min | 105% | - |
Deus Ex: MD | 1440p Min | 97% | 96% |
Final Fantasy 14 | 1440p Min | 102% | - |
Final Fantasy 15 | 1080p Standard | 101% | 105% |
World of Tanks | 1080p Standard | 101% | 101% |
Borderlands 3 | 1440p Very Low | 103% | 105% |
F1 2019 | 1440p Ultra Low | 99% | 99% |
Far Cry 5 | 1440p Low | 99% | 99% |
GTA V | 1440p Low | 100% | 99% |
RDR 2 | 1440p Low | 100% | 100% |
Strange Brigate | 1440p Low | 100% | 100% |
At the more medium settings, we’re starting to see some more variation (Borderlands gets a few percent from SMT). We’re starting to see Deus Ex:MD drop off a bit with SMT enabled.
Stage 4: Lowest Lows AMD Ryzen 9 5950X, SMT On vs SMT Off |
|||
AnandTech | Settings | Average FPS |
95th Percentile |
Chernobylite | 360p Low | 106% | - |
Civilization 6 | 480p Min | 102% | - |
Deus Ex: MD | 600p Min | 91% | 91% |
Final Fantasy 14 | 768p Min | 102% | - |
Final Fantasy 15 | 720p Standard | 99% | 102% |
World of Tanks | 768p Min | 101% | 100% |
Borderlands 3 | 360p Very Low | 108% | 110% |
F1 2019 | 768p Ultra Low | 102% | 105% |
Far Cry 5 | 720p Low | 100% | 101% |
GTA V | 720p Low | 99% | 98% |
RDR 2 | 384p Low | 100% | 103% |
Strange Brigate | 720p Low | 95% | 95% |
This is perhaps our most varied set of results, with Deus Ex:MD showing an almost 10% drop with SMT enabled. DEMD is usually considered a CPU title, but so is Chernobylite, which sees a 6% gain. Borderlands is +8-10% with SMT enabled, which is more of a modern game. However, I doubt anyone is playing at these resolutions.
Overall Gaming Performance
If we take full averages from all the data points, then we’re seeing a rough +1% gain in performance in the more complex scenarios across the board.
Resolution Average Comparison AMD Ryzen 9 5950X, SMT On vs SMT Off |
||||
AnandTech | Setting | aka | Average FPS |
95th Percentile |
Stage 1 | 1080p Max | Actual Gaming | 101% | 101% |
Stage 2 | 4K+ Min | All About Pixels | 101% | 101% |
Stage 3 | 1440p Min | Medium Lows | 101% | 101% |
Stage 4 | < 768p Min | Lowest Lows | 100% | 101% |
In reality, any loss or gain is highly dependent on the title in question, and can swing from one side of the line to the other. It’s clear that Deus Ex prefers SMT off, and F1 2019 or Borderlands prefers SMT on, but we are talking fine margins here.
126 Comments
View All Comments
quadibloc - Friday, December 4, 2020 - link
On the one hand, if one program does a lot of integer calculations, and the other does a lot of floating-point calculations, putting them on the same core would seem to make sense because they're using different execution resources. On the other hand, if you use two threads from the same program on the same core, then you may have less contention for that core's cache memory.linuxgeex - Thursday, December 3, 2020 - link
One of the key ways in which SMT helps keep the execution resources of the core active, is cache misses. When one thread is waiting 100+ clocks on reads from DRAM, the other thread can happily keep running out of cache. Of course, this is a two-edged sword. Since the second thread is consuming cache, the first thread was more likely to have a cache miss. So for the very best per-thread latency you're best off to disable SMT. For the very best throughput, you're best off to enable SMT. It all depends on your workload. SMT gives you that flexibility. A core without SMT lacks that flexibility.Dahak - Thursday, December 3, 2020 - link
Now I only glanced through the article, but would it make more sense to use a lower core count cpu to see the benefits of SMT as using a higher core count might mean it will use the real core over the smt cores?Holliday75 - Thursday, December 3, 2020 - link
Starting to think the entire point of the article was this subject is so damn complicated and hard to quantify for the average user that there is no point in trying unless you are running work loads in a lab environment to find the best possible outcome for the work you plan on doing. Who is going to bother doing that unless you work for a company where it makes sense to do so.29a - Thursday, December 3, 2020 - link
I wonder what the charts would look like with a dual core SMT processor. I think the game tests would have a good chance of changing. I'm a little surprised the author didn't think to test CPU's with more limited resources.Klaas - Thursday, December 3, 2020 - link
Nice article. And nice benchmarks.Too bad you could not include more real-life test.
I think that a processor with far less threads (like a 5600X)
is easier to saturate with real-life software that actually uses threads.
The Cache Sizes and Memory channels bandwith ratio to core is quite different
for those 'smaller' processors. That will probably result in different benchmark results...
So it would be interesting to see what those processors will do, SMT ON versus SMT OFF.
I don't think the end result will be different, but it could even be a bigger victory for SMT ON.
Another interesting area is virtualization.
And as already mentioned in more comments it is very important that the Operating Systems
will assign threads to the right core or SMT-Core combinations.
That is even more important in virtualization situations...
MDD1963 - Thursday, December 3, 2020 - link
Determining the usefulness of SMT with 16 cores on tap is not quite as relevant as when this experiment might be done with, say, a 5600X or 5800X....; naturally 16 cores without SMT might still be plenty (as even 8 non SMT cores on the 9700K proved)thejaredhuang - Thursday, December 3, 2020 - link
This would be a better test on a CPU that doesn't have 16 base cores. If you could try it on a 4C/8T part I think the difference would be more pronounced.dfstar - Thursday, December 3, 2020 - link
The basic benefit of SMT is it allows the processer to hide the impact of long latency instructions on average IPC, since it can switch to new thread and execute those instructions. In this way it is similar to OOO(which leverages speculative execution to do the same) and also more flexible than fine-grained multi-threading. There is an overhead and cost(area/power) due to the duplicated structures in the core that will impact the perf/watt of pure single-threaded workloads, I don't think disabling SMT removes all this impact ...GreenReaper - Thursday, December 3, 2020 - link
Perhaps not. But at the same time, it is likely that any non-SMT chip that has a SMT variant actually *is* a SMT chip, it is just disabled in firmware - either because it is broken on that chip, or because the non-SMT variant sold better.