Sign in with
Sign up | Sign in

Does Hyper-Threading make a difference?

Last response: in CPUs
Share

The i7-3770K is $100 more than the i5-3570K. I was wondering if the Hyper-Threading in the i7-3770K made much of a difference. Sometimes I do run office apps and do video editing. Not sure how many games and programs actually use Hyper-Threading now these days. And not sure if the trend of programs is to use Hyper-Threading more and more. Is it really worth $100 more?

drthrd said:
Is it really worth $100 more?

Games can barely leverage more than 2-3 threads/core for the most part. Unless video editing, 3D rendering and other tasks that tend to be more heavily threaded account for a significant chunk of your workload then no, i7 is not worth the expense.

Multi-threaded or multi-cored CPUs have been around for nearly 10 years and games have barely started leveraging that. It is likely going to take many years longer for game programmers to effectively leverage quad-core.

Hyperthreading helps in video editing. There are only a few games that can utilize it.

However, nearly all new games utilize 4 cores or more, very few utilize 6 or 8.

For games, hyperthreading is of no benefit on quad core chips. Dual core i5s and i3s probably do benefit.

Hyperthreading is also of no benefit in general use, as all modern CPUs are already fast enough. The one exception to this is if you are an extreme multitasker and have many apps demanding the CPU's attention simultaneously.

Hyperthreading earns its spurs in video editing, where you will get about a 20% performance improvement.
Related ressources

bwrlane said:
For games, hyperthreading is of no benefit on quad core chips. Dual core i5s and i3s probably do benefit.

Hyperthreading is also of no benefit in general use, as all modern CPUs are already fast enough. The one exception to this is if you are an extreme multitasker and have many apps demanding the CPU's attention simultaneously.

Hyperthreading earns its spurs in video editing, where you will get about a 20% performance improvement.



Very nice. I agree with malmental....

+1

Right now at least with Intel® processors quad cores seem to be the sweet spot for price and performance. Once you start to move up into something a little heavier like video editing you find that additional cores and/or hyper-threading becomes useful.


Christian Wood
Intel Enthusiast Team

What are some software programs that would benefit most from hyper-threading? Apps like Adobe CS4, 5 and now 6? I'm not much of a gamer but, I'm planning on getting the i7 3770 for the work that we do in our small business and we use stuff like CS often for a variety of work projects including video editing and rendering. We do lots of multi-tasking as well.

I still don't understand why games aren't multi-threaded. It was explained to me a while back in an obscure way. The way he made it sound is that they can't be programmed to utilize the architecture. That can't be right because some games use muti-threading.

Also does anyone know where I can read up and learn more about multi-threading?

Thanks.

Probably the most common type of program that anyone uses which can take advantage of Hyper Threading (HT) is file compression like WinRAR, 7-Zip, WinZip, etc... However, how many times do you compress files?

Regarding office related work... financial modelling using Excel can benefit from HT, but unless that is your primary use there is not real need for HT. Also, Ivy Bridge CPUs have an updated AVX instruction set which can also improve performance in financial and scientific modelling; again not a big deal if you do not do financial modelling.

josejones said:
What are some software programs that would benefit most from hyper-threading? Apps like Adobe CS4, 5 and now 6? I'm not much of a gamer but, I'm planning on getting the i7 3770 for the work that we do in our small business and we use stuff like CS often for a variety of work projects including video editing and rendering. We do lots of multi-tasking as well.


Yes, these are classic cases of apps that benefit from hyperthreading. If you use premiere pro, photoshop, after effects or Vegas, you will find an i7 significantly more powerful than an i5. Actually, for apps like premiere pro where you need to do real time editing with multi layer effects, it makes sense to get all the CPU you can.

voodooking said:
I still don't understand why games aren't multi-threaded. It was explained to me a while back in an obscure way. The way he made it sound is that they can't be programmed to utilize the architecture. That can't be right because some games use muti-threading.

Also does anyone know where I can read up and learn more about multi-threading?

Thanks.


Games are multi threaded but increasing the thread count is really difficult.

You can easily do a sort of "threading lite" where each thread looks after a different task, but that's not where the real benefit of threading lies.

The real benefits come from parallelising the heavy lifting like the AI and the geometry calculation. Logically (and obviously), you cannot multi thread code which contains branch dependencies, because the code you execute depends on the outcome of the last code you executed. Games are really difficult to program in a threaded way because so much is dependent on contingent issues like user input and random variables.

Much of the art of developing threaded code is about identifying all the elements of the program that are not interdependent, or contingent, and parallelising them. It's also about going through the workflow with a fine tooth comb and identifying where dependencies exist that aren't needed.

Also, remember that the game engine has to be developed for the lowest common denominator. That's the Xbox, which has a triple core AMD processor. Optimising an Xbox game for more threads to run on other hardware is a major re-engineering task.

I speak not as a programmer but rather, as someone who thinks about the logic of software development and optimisation, so I may be quite wrong.

@ Bwrlane.

Thank you for that thoughtfull reply. Now I understand what is going on a little more. It's a shame that programmers can't find a way to pre-load items that players might use as they are playing. Shure the player might not use what is pre-loaded in all of the cores but they are probably going to use one. If it's pre-loaded then the task is already done. It then speeds up the process when the player executes their decision. The cores that were then dedicated to the pre-loading are reloaded based on what the players move was. Is that even possible?

bwrlane said:
I speak not as a programmer but rather, as someone who thinks about the logic of software development and optimisation, so I may be quite wrong.

In supercomputing, it boils down to how much additional work extra threads can do VS how much additional time threads ends up wasting to synchronize the additional threads at critical points.

AI, physics and scene animation are relatively easy to parallelize but they all depend on external inputs and the effects of those other inputs (player/network/server) are highly conditional so even if you parallelize everything else, everything still ends up stalled by the interactive thread.

Everything is tightly coupled to everything else so everything ends up waiting for the weakest link.

voodooking said:
@ Bwrlane.

Thank you for that thoughtfull reply. Now I understand what is going on a little more. It's a shame that programmers can't find a way to pre-load items that players might use as they are playing. Shure the player might not use what is pre-loaded in all of the cores but they are probably going to use one. If it's pre-loaded then the task is already done. It then speeds up the process when the player executes their decision. The cores that were then dedicated to the pre-loading are reloaded based on what the players move was. Is that even possible?


Yes, I understand this kind of logic is what parallel programming is all about. I'm not sure it works in the case of loading items because loading isn't CPU limited and CPU cores can't be used for storing data.

But you can indeed parallelise an inherently serial task by processing a branch of code on the basis of an educated guess on the output of the code that logically precedes it.

voodooking said:
It's a shame that programmers can't find a way to pre-load items that players might use as they are playing.
The programmers are MUCH more concerned about getting a game to run well on low end systems. They won't optimize a game/program for a top end hardware if it means losing millions in sales to people who have mid-range or low-end systems.
Ask the community
!