As we've come to learn recently, there are four new hardware vulnerabilities that affect Intel processors. These new flaws allow attackers to leak confidential data by exploiting microarchitectural data sampling (MDS) side-channel vulnerabilities, of which the most serious is arguably 'ZombieLoad'.
Unlike previous speculative execution flaws that partially affected AMD and Arm-based processors, the MDS flaws are exclusive to Intel chips. In the short term the only way to mitigate or minimize these vulnerabilities is to disable simultaneous multithreading (SMT), or as Intel brands it "Hyper-Threading."
As it stands Microsoft is pushing out OS-level updates to address the four MDS vulnerabilities and you'll get those with this month's Windows 10 1903 update. However, this doesn't mitigate the problem entirely, for that we need motherboard BIOS updates and reportedly Intel has released the new microcode to motherboard partners. However as of writing no new BIOS revisions have been released to the public. We believe we can test a worst case scenario by disabling Hyper-Threading and for older platforms that won't get updated this might end up being the only solution.
With that, today we're exploring the impact disabling Hyper-Threading has on Intel processors that support the feature. We've done this in the past and it's an interesting test, however there is a new critical incentive to go over this data considering that Intel's latest hardware security vulnerability impacts SMT.
We've grabbed a Core i7-8700K and 7700K and tested them in a battery of games and applications with and without Hyper-Threading enabled. We didn't bother with the i9-9900K because it's an 8-core part, so the missing threads won't be an issue for gaming performance, though there'll still be a negative impact on application performance and that should be inline with what we see from the 8700K and 7700K.
With more ample time (we're about to head out to Computex 2019, so watch out for our coverage) we would have liked to test some dual-core Hyper-Threading enabled Intel CPUs as the impact there will no doubt be brutal. Though we do have some older data we can fall back on.
We performed all tests using Windows 10 build 1903, we equipped the rigs with 32GB DDR4-3200 memory and a GeForce RTX 2080 Ti to reduce GPU bottlenecks. Gaming benchmarks were ran at both 1080p and 1440p, though we'll start with application benchmarks first.
Application Benchmarks
First off we have Cinebench R20 results and looking at the Core i7-8700K we see a 24% reduction in performance with Hyper-Threading disabled. Naturally that kind of performance drop won't go unnoticed. Furthermore in terms of performance we're essentially turning the 8700K into a 7700K, so a fair old downgrade that.
Meanwhile the 7700K becomes 26% slower with Hyper-Threading disabled and now we have a plain old quad-core, or a Core i5 of the Kaby Lake generation. For applications that heavily leverage all cores, disabling SMT/Hyper-Threading has a big impact on performance.
WinRAR sees a massive 36% reduction in throughput for the 8700K. Clearly Hyper-Threading works very well for this type of workload. Likewise we see a massive drop off for the 7700K, a 39% reduction in this case.
Corona is a high performance renderer and here the 8700K saw a 31% performance decrease with Hyper-Threading disabled, while the 7700K saw a similar 33% drop off. In both cases the performance decrease is significant, signaling we could see considerable performance drop offs in rendering and encoding tasks depending on how the updates to mitigate the flaws work.
Blender sees a smaller 25% drop off for the 8700K with Hyper-Threading disabled, which is closer to what we saw on Cinebench R20, though it's still significant. The 7700K with fewer cores does suffer a little more and here we see a 29% performance reduction.
Power Consumption
Before we move on to gaming we wanted to note total system power consumption. Granted we're not looking at individual processor consumption, so it's hard to comment on efficiency, but as you can see disabling Hyper-Threading on the 8700K doesn't save us much power in this test with a ~5% reduction in total system usage. The 7700K was better leveraged with HT enabled and here we saw an 11% reduction which is probably more in line with the performance drop off we saw.
Gaming Benchmarks
First up are 1080p results for Assassin's Creed Odyssey. Here the 8700K only saw a 13% reduction for the average frame rate and no change to the 1% low. The 7700K on the other hand with its fewer cores saw a massive reduction for both the average frame rate and 1% low results. Here we saw a 23% drop off for the average frame rate and 21% for the 1% low. Those with quad-core processors will be impacted significantly more by a reduction in Hyper-Threading performance.
Now if you're primarily GPU bound the 8700K does fine with Hyper-Threading disabled as we see at 1440p, even with an RTX 2080 Ti. Those with quad-cores and god forbid dual-cores, any reduction in Hyper-Threading efficiency is going to sting.
Battlefield V is a very CPU intensive title though for this content we only had time to test the single player portion of the game and even then we needed two Origin accounts thanks to the delightful hardware change lockout. Keeping on subject, we don't see much of a performance decline here. The biggest drop off was up to 12% when looking at the 1% low margins for the 7700K.
Increasing the resolution to 1440p didn't help with the 1% low performance and we see in both instances disabling Hyper-Threading does reduce performance though the gap is not as large as with saw on productivity workloads.
The Division 2's results are brutal. Look at the performance drop on the 7700K with Hyper-Threading disabled. The average frame rate is reduced by 37% and the 1% low result by 38%, close to what we saw on WinRAR.
The performance impact for the 6-core 8700K isn't nearly as extreme, but even so a 13% dip in 1% low performance won't be appreciated by most gamers. Moving to 1440p and now the 8700K even with Hyper-Threading disabled isn't the performance limiting component, that would be the RTX 2080 Ti. However we're still seeing a 32% reduction for the 7700K when looking at 1% low performance.
A little side note. Far Cry New Dawn plays better on the 9700K than it does the 8700K. The 9700K allows for ~120 fps on average at 1080p. We bring this up because when we disable Hyper-Threading the 8700K matches the 9700K in this test, so basically 6-cores/6-threads is more efficient in this title than 6-core with 12-threads and you see that quite a bit with games when testing SMT.
That said the 7700K with its fewer cores doesn't suffer the same issue with Hyper-Threading enabled, though it was still a smidgen faster with it disabled. So at least for this game running without Hyper-Threading is a non-issue and in fact is likely going to be beneficial, though not if you have a dual-core.
Moving to 1440p and we see that core count isn't an issue here, it's actually Hyper-Threading that's slowing down the 7700K and 8700K.
Moving on we have Hitman 2 and here we see that disabling Hyper-Threading has no real impact for the 8700K, however for the quad-core 7700K it is devastating. The average frame rate dropped by 18% but far worse, almost a 30% reduction in 1% low performance. Granted we're still seeing over 60 fps at all times, but for those chasing big frame rates this kind of performance hit is harsh.
Even at 1440p the 7700K is hit hard with Hyper-Threading disabled as we still see over a 25% reduction in 1% low performance.
Next up we have Rage 2 where the 8700K saw almost no decline in performance with Hyper-Threading disabled. On the 7700K the average frame rate is virtually unchanged, but the 1% low drops by a significant 20% margin.
Once we increase the resolution to 1440p in Rage 2 that's enough to remove the CPU as the performance limiting component, at least when looking at the Hyper-Threading-less 7700K. So here disabling Hyper-Threading has no impact on performance.
We've seen in the past just how demanding Shadow of the Tomb Raider can be and we're getting a reminder of that here. The 8700K saw a 10-12% performance drop off with Hyper-Threading disabled while the 7700K saw a 24% drop off, though the 1% low margins were similar to what we witnessed with the 8700K. In either case disabling SMT does have a big impact in this title.
Even at 1440p the effect is significant, at least for the 7700K. The 8700K still saw a small performance decline but it was nothing like the 20% drop off the 7700K suffered.
Last up we have some World War Z results using the low-level Vulkan API. Here the game runs just fine with 4 cores, so neither CPU suffers when Hyper-Threading is disabled. We see something similar at 1440p as both CPUs are able to extract maximum performance from the RTX 2080 Ti.
Wrap Up
We now have a pretty good idea of how Intel's 4 and 6-core CPUs perform with Hyper-Threading enabled versus disabled. To quickly summarize the results, core heavy application performance was typically reduced anywhere from 25-35%.
The impact on gaming performance can vary significantly depending on the game and other factors such as the resolution, visual quality settings, and of course, the accompanying GPU. For the games we tested, with a 6-core Intel CPU you will see minimal impact on performance for the most part, though 1% performance does suffer at times and on high refresh rate gaming you'll notice the performance drop.
For those with an 8-core/16-thread part like the 9900K the impact on gaming will be virtually non-existent, though application performance will still see a 25-35% drop without SMT. On the other hand, lower-end CPUs that rely on Hyper-Threading more heavily will see the most substantial performance loss. Even the quad-core 7700K often suffered large performance dips in gaming tests and this means the loss of Hyper-Threading will be even more devastating for those with dual-core SMT enabled parts.
For now we can't exactly say how much of an impact the four MDS mitigations will have on performance (for Windows PCs), but we can anticipate there will be some hit, and we know it'll be felt most where Hyper-Threading has the biggest impact. Phoronix has tested the mitigations on Linux and the performance hit ranges from negligible to massive. Phoronix also found that Intel systems are now ~16% slower out of the box than they were before the Spectre, Meltdown, Foreshadow and Zombieload mitigations. Meanwhile AMD has only seen a 3% performance drop. They also argue the mitigation impact is enough to draw the Core i7-8700K much closer to the Ryzen 7 2700X and the Core i9-7980XE to the Threadripper 2990WX.
Unless Intel can pull a rabbit out of a hat and make mitigations so effective that Hyper-Threading is left untouched, this could have disastrous consequences for those using dual and quad-core Intel CPUs that support Hyper-Threading. This includes Core i3 and Core i5 processors from Clarkdale to Kaby Lake, Core i7s up to Kaby Lake, as well as Kaby Lake and Coffee Lake Pentium processors.
For those using older hardware and not running any mission critical tasks, until attacks based on these exploits are clearly defined, perhaps the best performance option will be not to update. This is not our official recommendation but color commentary on what could be an alternative route once the corresponding updates are released.
This article made for an interesting study of where Hyper-Threading makes the biggest difference and while this shows a worst case scenario where SMT has to be thrown completely out of the picture, we've seen some moves in that direction. Google turned off Hyper-Threading in Chrome OS, the OpenBSD community recommends the same, while Apple has patched systems with partial mitigations and disclosed that full mitigation requires disabling Hyper-Threading. Other vendors like Microsoft have not taken a definitive stance yet.
Shopping Shortcuts:
Image credit: Intel CPU masthead by Christian Wiediger, Dark chip by David Latorre