Jump to content

All I understand about hyperthreading is that it's threading that is hyper.

 

No not really, I understand that it doubles the cores in the PC's eyes but it doesn't really, and I think that 8 core CPU (no hyper-threading) > 4 core CPU (hyper-threading) if they are identical apart from the cores.

||| Drakon (Desktop Build) |||

|| CPU: 3800X || Cooler: Kraken X63 || Motherboard: B450 Aorus M || Memory: HyperX DDR4-3200MHz 16G ||

|| Storage: 512GB 970 Pro + 500GB 850 EVO + 250GB 850 EVO + 1TB HDD + 2TB HDD || Graphics Card: RX 5700 XT Red Devil || Case: Thermaltake Core V21 || PSU: XFX XTR 750W 80+Gold || 

 

Link to comment
https://linustechtips.com/topic/493816-hyper-threading-please-explain/
Share on other sites

Link to post
Share on other sites

Laptop - Lenovo Y50   Keyboard - Corsair K95 RGB Cherry MX Brown   Mouse - Logitech G502 Proteus Core   Mousepad - Razer Firefly


 


Please read the LTT Code of Conduct before submitting a post

Link to post
Share on other sites

All I understand about hyperthreading is that it's threading that is hyper.

 

No not really, I understand that it doubles the cores in the PC's eyes but it doesn't really, and I think that 8 core CPU (no hyper-threading) > 4 core CPU (hyper-threading) if they are identical apart from the cores.

I look at it like a sandwich. Say you have 2 slices of bread, with a bit of ham, a bit of beef, and mustard. Instead of making one big sandwich(A single core), you can divide the resources to make 2 lesser sandwiches(A core with hyper threading).

Link to post
Share on other sites

All I understand about hyperthreading is that it's threading that is hyper.

 

No not really, I understand that it doubles the cores in the PC's eyes but it doesn't really, and I think that 8 core CPU (no hyper-threading) > 4 core CPU (hyper-threading) if they are identical apart from the cores.

Hyper-threading is a way to create additional tasks to be scheduled which can significantly improve performance. In the case of comparing an 8 core CPU with no hyper-threading vs a CPU with 4 cores and hyper-threading, if the CPUs have the same architecture, the 8 core CPU will perform better as physical cores are better than virtual cores.

 

Additionally in the some applications, hyper-threading can reduce performance or make the application completely unusable. In testing single threaded performance, hyper-threading will lower performance versus having no hyper-threading and performing the same test.

 

Moved to CPUs, Motherboards, and Memory.

Edited by Godlygamer23

"It pays to keep an open mind, but not so open your brain falls out." - Carl Sagan.

"I can explain it to you, but I can't understand it for you" - Edward I. Koch

"I didn't die! I performed a tactical reset!" - Apollolol

Link to post
Share on other sites

When it works its worth about +20% performance in total, that is it. The reason it exists is because modern Intel processors have 7 ports for doing work, they already look for parallelism in the code being run and schedule it into these 7 different arithmetic units (although they all do somewhat different things). Most programs however don't have workloads that use all 7 or the level of parallelism extracted at the code level to fully utilise all of the ports the CPU has internally, so hyperthreading just adds an additional instruction decoder front end onto the CPU to allow a second thread to use these unused ports. It has to maintain the program counter and its own set of registers but most of the core is shared with hyperthreading. Its a cheap way to get better utilisation of the processors underlying arithmetic units since there are now quite a lot of them in parallel.

 

But in order for it to work well you need both multiple threads of execution and those threads need to have different workloads, ie some working on floating point and others on integer in order for to actually improve performance. If you have code with a lot of branches that is poorly predicted (like a database query for example) then it can also allow better usage while the other front end is stalled awaiting a memory read (processors now run 100x faster than memory so predicting what you need is vital). You could just take away that it allows one core to run 2 threads in parallel and its worth at best 20% if none of that makes sense, or go with Linus' awful food analogy but I felt someone at least should give a basic explanation of what it really does.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×