• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

How much will future games support Hyper-Threading?

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
Good day AT people. I have a question that I thought some people might like to discuss. Hyper-Threading is a proprietary technology developed by Intel where every physical core can be "split" into two logical cores that can perform processes simultaneously to speed up an application (that's a very watered down explanation but the point of this post is not to discuss what HT is but how). But the program must be developed to utilize Hyper-Threading in order for it to work... Sooo my question to you guys is, how much will games of the future utilize HT? Will HT become a big and indispensable aspect of gaming? Or will it not. Seems like right now, the results of HT'ing in games is mixed at best.

So what do you think? Looking for people to weigh in on this. If this has already been discussed, or my question is off, please forgive me and ignore.

Thank you. :)
 

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
Every single multi threaded game will.

Afaik theres no "support" needed, a game that can use 4 cores will use 2 cores + HT happily it dosent need to be programmed to use hyperthreading it just needs to be multithreaded, windows will do the rest. BF3 is an excellent example of this as it can use 8 available threads and therefore can make use of the i7's HT tech.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
Ok... but does a thread perform as well in a "logical" core as a physical core? In other words yes, BF3 can make use of the hyper threads, but a) how well optimized is it to do, and b) is there a difference between 4 cores, 4 threads and 2 cores, 4 threads.

Thanks
 

apoppin

Lifer
Mar 9, 2000
34,890
1
0
alienbabeltech.com
Ok... but does a thread perform as well in a "logical" core as a physical core? In other words yes, BF3 can make use of the hyper threads, but a) how well optimized is it to do, and b) is there a difference between 4 cores, 4 threads and 2 cores, 4 threads.

Thanks
look for yourself
GameBench-1.jpg
 

Merad

Platinum Member
May 31, 2010
2,586
19
81
is there a difference between 4 cores, 4 threads and 2 cores, 4 threads.

Yes. Hyper Threading can not run two threads simultaneously on the same processor core. What HT does essentially is allow the core to store the state of two threads at once. During times when the core would normally be idle/waiting on a thread (for example, waiting on data to load from system memory) HT can flip over and execute the second thread instead of sitting idle.

If you have a choice between two cores, or one core with HT, you'll usually get better performance out of two cores.

If you want more details read this old article Anand wrote when HT was introduced: http://www.anandtech.com/show/868
 

DaveSimmons

Elite Member
Aug 12, 2001
40,730
670
126
> If you have a choice between two cores, or one core with HT, you'll usually get better performance out of two cores.

That depends on how fast the cores are though. If you're comparing AMD vs. Intel, then often an i3-2100 will beat many Phenom X4 CPUs because the 2 intel cores are so much stronger (see Apoppin's chart against a 500 MHz faster Phenom above). If it's Sandy Bridge i3 vs. i5 at the same clock speed then the i5 will win.
 

Throckmorton

Lifer
Aug 23, 2007
16,829
3
0
What if a game has 2 threads, and you have a dual core with multithreading... Is Windows smart enough to split the game between two cores, or can both threads end up on one core, wasting performance?
 

dinkumthinkum

Senior member
Jul 3, 2008
203
0
0
Most modern operating systems are smart enough to distribute threads among the different cores in a system before doubling up on Hyper Threads.

But that's about as smart as they get, unless you have installed a custom scheduling engine of some sort.

Frankly, the benefit from Hyper Threading is dubious. Unless your application threads are designed to use separate units in the core, or spare capacity due to stall, you will not see any improvement. You might see worse performance than the single thread case.
 
Mar 10, 2005
14,647
2
0
Ok... but does a thread perform as well in a "logical" core as a physical core? In other words yes, BF3 can make use of the hyper threads, but a) how well optimized is it to do, and b) is there a difference between 4 cores, 4 threads and 2 cores, 4 threads.

Thanks

thre is no optimization to make. HT is invisible to the program, the OS and the user. the only reason you see 8 threads on a 4-core chip is because that's what the motherboard/cpu is reporting. besides on/off, is there even a setting to change? like the turbo boost, it's perfectly fine right out of the box.


http://www.techspot.com/review/458-battlefield-3-performance/page7.html

as long as you have 2 cores or more, bf3 doesn't care what your cpu is. it leans very heavily on the video card.
 

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
Ok... but does a thread perform as well in a "logical" core as a physical core? In other words yes, BF3 can make use of the hyper threads, but a) how well optimized is it to do, and b) is there a difference between 4 cores, 4 threads and 2 cores, 4 threads.

Thanks

A - Well battlefield 3 from the benches looks like its extremely well optimized for multiple threads. The engine is DX10/11 so they can do much better multicore stuff than any DX9 game can, cant be more specific than that all i know is DX10/11 are much better at multithreading and allow devs to multithread things DX9 just cant.

B - Yeah a 4 core 4 thread CPU will be faster than a 2 core 4 thread CPU in an application that can use 4 threads, if it cant use 4 threads and only uses say 2 then it dosent matter and performance will be the same as long as they are both the same architecture and clockspeed.
Although hyperthreading doubles the amount of threads a CPU can handle it does not do as well as complete extra cores would. HT is basically "bits of a core" that work to help out the complete CPU cores. HT tech takes up about 10% of the physical space on a CPU, the other 90% is complete CPU cores and memory. For the space it takes up the potential performance increase is very good :thumbsup:
 

TakeNoPrisoners

Platinum Member
Jun 3, 2011
2,599
1
81
If you disabled HT on an Intel dual core you would see at most a 10% loss.

HT can only give you 10% more performance in the best case scenario. This is why the old Pentium 4 CPUs with Hyper Threading cannot touch even the slowest dual cores in multithreaded apps.
 
Last edited:
Dec 30, 2004
12,553
2
76
What if a game has 2 threads, and you have a dual core with multithreading... Is Windows smart enough to split the game between two cores, or can both threads end up on one core, wasting performance?

They can. WoW had this issue for a while and people with core i7s clocked at 4.2ghz were getting poor CPU-related performance. When they patched it it no longer put all the computations on cores 1 and 2 (e.g. both on 1 processor core) but on 1 and 3.
 

iCyborg

Golden Member
Aug 8, 2008
1,353
62
91
It's pretty hard to optimize for HT - if you can fully use 2-4 cores, chances are that 2 cores + HT will perform slightly worse than HT disabled. Unless you have some unusual case where you can have one thread use 100% ALU and another SSE only, but it's very hard to have a situation where you can do this for a sustained period of time. Or your program is memory intensive so you benefit from fast context switches during frequent cache misses, most encoding apps are like that.

thre is no optimization to make. HT is invisible to the program, the OS and the user. the only reason you see 8 threads on a 4-core chip is because that's what the motherboard/cpu is reporting. besides on/off, is there even a setting to change? like the turbo boost, it's perfectly fine right out of the box.
It's not invisible - most new OS are HT-aware and know which cores are physical and which are logical, and scheduler will use that info. Programmers can also retrieve that info (how else would CPU-Z know...) and use it if they want to, it's just that most choose not to, and it's usually better to leave it to the OS.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
Yes. Hyper Threading can not run two threads simultaneously on the same processor core. What HT does essentially is allow the core to store the state of two threads at once. During times when the core would normally be idle/waiting on a thread (for example, waiting on data to load from system memory) HT can flip over and execute the second thread instead of sitting idle.

If you have a choice between two cores, or one core with HT, you'll usually get better performance out of two cores.

If you want more details read this old article Anand wrote when HT was introduced: http://www.anandtech.com/show/868

Damn. I usually have trouble understanding how technologies works when it comes down to the science of it, but since I'm sincerely interested in understanding all this, I really racked my brain to focus on that article and understand what it meant! Lol :)

It seems like the kernel to grasping the science behind Hyper Threading is this ( and I draw this directly from Mr. Anand's words) :

A CPU with Hyper Threading does not attempt to fetch and decode instructions simultaneously. Instead, the HT will ALTERNATE the fetching and coding between the two logical CPUs. In other words, the idea is that while one execution unit is performing a calculation, the other thingy will be retrieving the next instruction to follow.

Somehow, this alternating mechanism of a HT CPU increases performance substantially, yet not on par with having another real, physical CPU.

Ok, got that, that part makes sense now. But how or exactly why this is the case is still eluding me...

Time for more research! This is great, I fully intend to have a full grasp on this whole multiple core/multiple thread thing.

Thank you everyone for your input thus far. :)
 

greenhawk

Platinum Member
Feb 23, 2011
2,007
1
71
> If you have a choice between two cores, or one core with HT, you'll usually get better performance out of two cores.

That depends on how fast the cores are though.

True, but the point is that Hyperthreading is a extra to help (and sometimes disadvantage) a given CPU. it does not suddenly double performance. If someone is expected it to, then they are heading for disapointment.

As Hyperthreading means effecting the real core, then when comparing cpus, ignoring Hyperthreading is best.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
It's pretty hard to optimize for HT - if you can fully use 2-4 cores, chances are that 2 cores + HT will perform slightly worse than HT disabled. Unless you have some unusual case where you can have one thread use 100% ALU and another SSE only, but it's very hard to have a situation where you can do this for a sustained period of time. Or your program is memory intensive so you benefit from fast context switches during frequent cache misses, most encoding apps are like that.

It's not invisible - most new OS are HT-aware and know which cores are physical and which are logical, and scheduler will use that info. Programmers can also retrieve that info (how else would CPU-Z know...) and use it if they want to, it's just that most choose not to, and it's usually better to leave it to the OS.

Yes, this seems to be the case... I think I made a mistake using the word "optimize" when comparing four-thread CPUs to four-core CPUs, inasmuch as four hyper-threads can never perform totally on par with four physical cores. Nor were they intended to. :)
 
Last edited:

greenhawk

Platinum Member
Feb 23, 2011
2,007
1
71
What if a game has 2 threads, and you have a dual core with multithreading... Is Windows smart enough to split the game between two cores, or can both threads end up on one core, wasting performance?

windows is dumb as a rock when it comes to thread handeling, but that is not windows fault in most cases. Hyperthreading is designed so that it was implemented with little to no changes needed at the software level. To do this, the CPU lies and reports the logical Hyperthreading cores as being real.

As they report as real, windows swaps the threads it has to work with to the cpu with the lowest usage, which means a program with two threads can end up on the same physical core from time to time. By time to time I mean windows will take one of the threads and move it to another core (real or logical) and so "fix" the issue of running on the same core. Down side is that their is a overhead from changing cores in mid run as data needs to be moved around for the new core to be able to use it.

All windows tries to do is move threads from heavly used cpus to lightly used CPUs with the intent that each thread gets the best performance it can. Down side is that the hardware does not know which core it can put to sleep (save power) as windows could try and use it without notice. Intel and AMD have both had the issue (AMD first IIRC), but it has lead to both manufactures needing to speed up and down cpu cores together to keep windows happy.
 

greenhawk

Platinum Member
Feb 23, 2011
2,007
1
71
If you disabled HT on an Intel dual core you would see at most a 10% loss.

depending on the application, the most I have seen lost was about 40% (from memory, single type of task). Generally, as for some situations having HT on can result in a performance loss, without vs with can
be -5% to +10%.
 

Throckmorton

Lifer
Aug 23, 2007
16,829
3
0
windows is dumb as a rock when it comes to thread handeling, but that is not windows fault in most cases. Hyperthreading is designed so that it was implemented with little to no changes needed at the software level. To do this, the CPU lies and reports the logical Hyperthreading cores as being real.

As they report as real, windows swaps the threads it has to work with to the cpu with the lowest usage, which means a program with two threads can end up on the same physical core from time to time. By time to time I mean windows will take one of the threads and move it to another core (real or logical) and so "fix" the issue of running on the same core. Down side is that their is a overhead from changing cores in mid run as data needs to be moved around for the new core to be able to use it.

All windows tries to do is move threads from heavly used cpus to lightly used CPUs with the intent that each thread gets the best performance it can. Down side is that the hardware does not know which core it can put to sleep (save power) as windows could try and use it without notice. Intel and AMD have both had the issue (AMD first IIRC), but it has lead to both manufactures needing to speed up and down cpu cores together to keep windows happy.

I had a feeling that was the case... I've always been skeptical of hyperthreading and would even prefer 4 regular cores to 4 cores with HT.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
That's good to know greenhawk. So basically, Windows can swap threads around, but it doesn't do it intelligently.

The hardest part about understanding all this stuff about Hyper Threading is this: if you compare one core to two cores, or two cores to four cores, and so on, in THEORY at least you are doubling performance right? That is easy to understand. But if you compare two cores to four threads, or four threads to eight cores, the comparisons get a lot more murky, because of the way the technology works, there's not a lot of consistency across the board in what performance you gain with Hyper Threads.