Hyper-Threading VS Simultaneous Multithreading?

Updated: Apr 27


History lesson

IBM was first to start researching such technologies in 1968, but Intel was first to launch a mainstream CPU with Hyper-Threading in 2002. Hyper-Threading was at first launched with Intel’s server CPUs – Xeons, but it was a Pentium 4, a mainstream desktop processor that introduced Hyper-Threading Technology to the masses. The CPU had 1 core and 2 logical processors operating at 3.2Ghz, therefore it had Hyper-Threading enabled. Furthermore, AMD just recently got into the game with their Simultaneous Multithreading with the launch of their Ryzen CPUs in 2017.


What does Hyper-Threading and Simultaneous Multithreading actually do and what are the differences between these two technologies?

What does HTT & SMT do?

So, what is the difference between Hyper-Threading and Simultaneous Multithreading? These two technologies are very similar to each other. What they do is increase the number of cores (doubles it) by virtually increasing the number of logical processors (threads) to help speed up multi-threaded tasks and increase overall performance. Hyper-Threading is Intel’s brand name for the technology, while simultaneous multi-threading (SMT) is a general term that AMD also uses.


With HTT or SMT enabled, your operating system (OS) sees two CPU cores instead of just one. These are virtual or logical cores, that the operating system treats like physical cores. Complex operations can be broken down into smaller parts and the processes can be carried out more quickly and efficiently. If the core is not using the same data for each task, that information can be split up, queued and then processed more quickly by using HTT & SMT.


Cores VS Threads

For example, the newest of the Core i3 lineup, 9th gen i3 -9100 has 4 cores and 4 threads, whereas the first gen i3 CPU (i3 530) had 2 cores and 4 threads. Throughout their lineup, Intel has been experimenting with the number of cores and threads that their CPUs offer. To fully utilize HTT & SMT, the software has to be properly optimized.


In general, having more physical cores over logical CPUs (threads) is better as it yields better performance. However, due to only one part of the core being duplicated, HTT & SMT is cheaper than adding more CPU cores, which allows for lower prices and higher profits. More threads come in handy once you are multitasking, you can run more processes without feeling any hitches.


Also, most older gen - 4 core 4 thread CPUs are at the end of their lifecycle at the moment, as most modern software is starting to appreciate a higher number of cores and threads. These older CPUs lack (better) IPC, cores, and higher clock speeds so I wouldn’t recommend buying such a CPU unless you’ll just be browsing the web and gaming casually. The only way to keep these CPUs relevant is to overclock them as much as possible, which can be achieved with a decent ⁓125W TDP cooler as older chips like to draw more power.


Downsides & Threats

Recently, Intel along with Apple who uses their CPUs, encouraged their users to turn off Hyper-Threading as it can lead to unwanted remote access where your data can be exploited. However, in most cases, you’ll be secured as Intel and Microsoft have issued patches and mitigations for these exploits, but have decreased the CPU performance in return. AMD does look better in this aspect as their CPUs haven’t really been affected by such exploits, or at least not to such extent as Intel’s.


Photo by Slejven Djurakovic on Unsplash


AMD & SMT VS Intel & HTT

As stated above, AMD is sporting their SMT with their Ryzen CPUs. Not all of the CPUs have SMT, but most of them do as it increases multi-threaded performance, which AMD is known for. Since forever, AMD has been more focused on multitasking, therefore their CPUs have been more oriented towards production than on gaming. More cores and threads are usually better used by production software such as Adobe products, Blender, and other software like synthetic benchmarks.


When it comes to gaming, IPC and clock speed are more important. Lately, AMD has greatly improved their IPC and has come on par with Intel. However, AMD offers (in most cases) more cores and threads with their CPUs, unlike Intel. With their latest series, Intel has cut down the threads on their lower-end CPUs and only released higher-end CPU with HTT. Yes, some of their lower-end or mobile CPUs do have HTT, but for mainstream desktop processors, Intel has focused on core count and clock speed.

For example, core i5 CPUs have upgraded from 4 to 6 physical cores and have 6 threads as they lack Hyper-Threading support. Core i3 CPUs have upgraded from 2 to 4 cores, but have dropped the Hyper-Threading support.


Photo by Christian Wiediger on Unsplash


Behind the scenes

User Knowbody42 from Reddit explains that each core has a set of execution pipelines that do the actual execution of instructions, and CPU's are designed to try to use as many of them as they can all at once, by executing instructions in parallel, and out of order, rather than letting execution pipelines just sit there idly not doing anything.

“If you have execution pipelines sitting there not doing anything, the CPU is not executing as many instructions per [unit of time] overall as it could.

There's a lot of intricacies behind how they do that, but suffice to say that it is very difficult, and most of the time there are still going to be some execution resources not doing anything, for various reasons.


One way to make use of those idle execution resources is by letting each core execute instructions from two threads instead of just one (aka SMT).

But this slows down single-threaded performance because on average each thread gets to use fewer execution pipelines (since some of them are being used by the other thread).

But you can increase SMT performance by adding more execution pipelines (as long as your front-end can keep feeding them, but that's another story). And Ryzen has more execution pipelines available than Kaby Lake does. And this should give Ryzen better single-threaded performance per clock than Kaby Lake, but right now compilers are not as well optimized for Ryzen as they are for Kaby Lake.


However, using SMT, Ryzen is able to make use of the spare execution pipelines regardless.

Though SMT scales better when each thread is not using the available execution resources optimally. If a thread is only able to make use of around 40-50% of the execution resources in the core, SMT scaling could reach 100%.


But if each thread is able to use 90-95% of the execution resources, then there's not much room for SMT to improve overall performance. It might even hurt performance.”

Source - Reddit


Conclusion

Hyper-threading and Simultaneous Multithreading are a good thing to have, but having more physical cores is better than having HTT or SMT.

These technologies are more of a bonus performance to the CPU and the difference in performance isn’t huge, but is nice to have. SMT or HTT mostly improves multithreaded workloads, while in gaming it is a mixed bag.

However, keep in mind that if you are a gamer who games and streams simultaneously, you’ll probably need it to ensure the best performance in both tasks. Also, as software is starting to use more and more CPU resources, having SMT or HTT is recommended if you are planning on future-proofing your PC.

1,323 views0 comments

Recent Posts

See All