Disabling SMT or Hyper-Threading for Better Latency
When it comes to game performance it is important to understand that although of great significance FPS is not the only measure you should be looking at. Another measurement that is as important as FPS (in my subjective opinion) is latency or how fast your PC executes inputs from your peripherals.
Better latency in simple terms translates to better inputs and a closer 1-to-1reaction of your in-game character to your real-time movement. We have already discussed ways in which you can decrease latency (custom Windows ISO, CMD commands, power plans, etc) and today I have tested another method through which you can shave off some milliseconds.
What Is SMT or Hyper-Threading
SMT (AMD) and Hyper-Threading (Intel) are technologies that allow more than one thread to run on each core allowing CPUs to be more efficient during their workloads. This is why most modern CPUs are described with a number of cores and threads (ex: my 5600X has 6 cores and 12 threads).
An unfortunate byproduct of these technologies is that in some cases a task is split between cores on different threads adding latency to whatever you are doing on your PC. This is a big drawback in competitive gaming where you want your inputs to translate as quickly as possible to in-game actions.
This is an overly simplified version of what these technologies do, but for the purpose of this article it is enough to understand a simple equation: SMT/Hyper-Threading ON = possibly better FPS and performance – while – SMT/Hyper-Threading OFF = better latency in games. In essence, I was curious how big would the difference in FPS be for gaming and how measurable would the difference in latency be if I would turn off SMT (since I have an AMD system) on my PC.
The way I tested latency with SMT on and off was LatencyMon since this is a very popular tool exactly for this task. I ran the benchmark 3 times for both SMT on and off and restarted each time to make sure the system is fresh.
I have also made sure to have no background applications running to have the closest possible result to a perfect scenario.
For the game testing, I have decided to use Apex Legends since this game is known for being a multi-threaded hog, allowing me to see how the game will behave if suddenly the extra threads are gone and it can only run with 1 thread per 1 core.
The test itself was a repetition of tasks in the training range since it is a controlled environment. Since this was not a proper benchmark the results are not 100% accurate but considering the results I have recorded and that the actions were repeated with consistency I am about 95% sure of the repeatability of the final results.
All of this was carried out on my PC which is running a PBO2 + Curve Optimizer overclock on my 5600X and my RTX 2070 which is overclocked and also is de-shrouded. I am also running a custom Windows install called KernelOS (1809) so my system is already tweaked out pretty hard.
The first thing I tested with SMT was LatencyMon where the results after 3 measurements were between 2.75us and 2.8us.
These results were consistent with all the other previous testing I have done on my system which did not surprise me at all.
In Apex I did the same set of actions 3 times as described in the methodology while measuring and recording the FPS using MSI Afterburner and RivaTuner. The settings in Apex were 1920×1080, 110 FOV, with every other setting on low for maximum FPS.
As you can see the results were all within the margin of error telling me that my set of actions repeated in the firing range can be considered a valid benchmark.
After going to the BIOS of my PC and disabling SMT I have started my second round of testing with restarts between each run of LatencyMon and all the other steps to ensure the validity of my results.
In LatencyMon with no background applications running the latency went down to 2.45us – 2.5us compared to the 2.75us and 2.8us.
Although I have measured a notable drop in my latency it was interesting that in Apex my FPS did not change at all and was all within the margin of error.
The conclusion here is pretty simple then – I have achieved lower latency without impacting my performance in my game of choice which is a net positive overall.
The limitations of my little study here are obvious – I have used only LatencyMon to measure the latency changes and have only used a single game (3 runs each to get a stable average). Moreover, since my system is running an AMD CPU I was not able to test the same process on an Intel system.
At the same time, my findings are consistent with most other PC tweakers that have experimented with this subject on different platforms.
The common conclusion is that for gaming, turning off SMT/Hyper-Threading might lead to a small loss in FPS (depending on the game engine and optimizations) while for workload tasks this will lead to a substantial loss in performance.
Since I am mainly interested in gaming I would say that turning off SMT/Hyper-Threading and lowering your latency is worth losing some FPS, especially if after running some tests you lose none like in the case of Apex.
While turning off SMT/Hyper-Threading might hinder your performance in work-oriented tasks if you are a competitive gamer like myself and you want the best possible latency, turning off SMT/Hyper-Threading is a step in the right direction.
The decrease in latency is clear while the drop in FPS and performance will depend on individual games and optimizations. At the same time as other reputable sources have noted “in gaming, overall there was no difference between SMT On and SMT Off, however, some games may show differences in CPU limited scenarios” (source) which then leads to my conclusion.
As a competitive gamer, you should turn off core virtualization for the benefit of lower latency. The only time this advice should not apply is when you can measure a huge difference in FPS in your game of choice which then renders it unplayable.
What Game Mode on TV Actually Does
Playing video games has become something more than a hobby for some people in the past couple of decades. From something you would play with your friends, gaming is now a viable profession, and as such, requires some hardware support. Notably, once the core of the computer is powerful enough, we turn to our peripherals […]
Will Modding Your Peripherals Make You a Better Gamer?
A lot of what we show on our page has to do with modding and how amazing it is. At the same time, it is important to understand that there are functional mods that do affect the way you play, but there are also purely aesthetic mods that just increase your enjoyment of using that […]
How to Cap Your FPS
Be it because you want to reduce the load on your PC (Mini-Steam, lightweight YouTube music) or because you want stable frame times instead of the absolute lowest value, capping FPS has always had uses in PC gaming. The differences in resource usage are instantly visible, and your game will run at a constant FPS […]
Are Older Nvidia Drivers Better? 457.30 vs 472.12
If you have ever wanted to get some more FPS from your Nvidia GPU you have most likely thought of trying different drivers to see which one is better. In the PC tweaking community, people have tested multiple titles and the consensus is that you should run the oldest drivers your card supports. This is […]
The Best Stretched Resolutions
If you like playing FPS games you know about stretched resolutions and that many people use them because of different perceived advantages. While stretched resolutions do indeed help in certain aspects the usual downside is the fact that you are sacrificing visibility for the wider models. In truth, stretched resolutions are not equal, and there […]
TCP Optimizer – Optimize Your Internet Connection for Gaming
When it comes to gaming you do not need the fastest internet possible, but you do need a connection with low latency so you can enjoy your games. So in the same way you optimize your PC by reducing latency, there are also ways to optimize your internet connection for gaming/latency instead of throughput. What […]