Core I7, shoudl hyperthreading be disable ?

Wow, what a poorly researched article. Windows XP is hyper-threading aware and will use physical cores over logical cores, windows 2003 and vista do this and also have api functions for user programs to do the same. Here's one link I found on this, but I don't have a .doc viewer so I'm not sure if it's what I think it is, but it should be:

http://www.microsoft.com/whdc/system/sysinternals/ht-windows.mspx

If Vista performs better with HT off it is probably because enabling hyperthreading splits processor resources between the logical cores, causing the physical core to have less than it would normally have.

Edit...
Whether you should disable Hyperthreading or not depends, it may increase performance slightly if you disable it if you don't have more than 4 active threads ever running.
 
For CPU heavy work in applications that are fully multithreaded such as encoding applications the HyperThreading is definitely going to improve performance. It will also improve performance if you are doing some pretty serious multitasking with a lot of CPU heavy apps open. In single threaded applications though and especially gaming the performance is usually lower with HyperThreading enabled. Although with gaming you aren't going to really notice it much since the graphics cards are doing most of the heavy work anyway.
 
Additionally, here is my task manager, I've been watching music videos for the last few hours, and as you can see, it's all been on one core, so techradar's claim that threads get shuffled between cores is wrong as well (hyperthreading disabled):
taskmanno9.jpg
 
I leave it enabled because I usually have music playing and/or am watching HD video while I game so I rack up some hard core CPU usage.
EDIT: I don't know what they were talking about, with HT enabled I don't see it shuffling cores even with ~60% usage.
 
I am thinking of getting a new i7 PC (my current PC is a 3 year old Core Duo, not Core 2 Duo, laptop) and was also wondering about this. Logically it seems that you'd get better performance from single-threaded applications if you disable Hyperthreading. Since there's probably no applications, certainly not any that I use, that would utilise more than 4 cores, is there any advantage in enabling it until such applications exist?
 
Hmmm I've disabled my HT and it didn't change my cpu score outside the margine of error, at least not in 3dmark06. But when playing crysis, i have core temp running on my secondary monitor and I do see load jumping all across 3 cores all the time.

I dunno, I feel like it's one of the performance features you get when you buy this processor (you paid for it). Can anyone truely confirm it's faster in most games when HT disabled? :confused:
 
Only few games have shown higher performance when HT is off, usually when HT is off you get a drop in temperatures if you OC. I'd leave it on unless heat becomes an issue. If you deal with multi threading apps i would definitly leave it on.
 
Hyper-threading is one of the attractive features of the i7 (unlike the previous Pentium 4s) and there's no reason to disable it (if your system can still be stable with it on). It actually works this time and is good to have on.
 
Additionally, here is my task manager, I've been watching music videos for the last few hours, and as you can see, it's all been on one core, so techradar's claim that threads get shuffled between cores is wrong as well (hyperthreading disabled):
taskmanno9.jpg

I know this is an old post but the graph doesn't support your argument. On a multi core CPU the load is constantly moving from core to core unless software specifically asks to run a task on a fixed core. Games tend to run some of their load fixed to one core but not all of it. Even a single threaded application will get constantly switched from core to core. This is a good thing because balancing the load across all available cores helps keep the core temperatures balanced.

Software like the Task Manager is only giving you a partial view of what's really going on. This swapping is going on thousands of times a second. The RealTemp - RivaTuner plugin can have the time interval dropped down to about 100 ms and then you can monitor individual core or thread loads and start to see some of the load swapping that is really going on.

Here's an example of 2 threads of Prime on a Quad. The overall average is steady at about 50% but each core is helping out as the load swaps around.

loadpercent.png


This is at a 100 ms polling interval. If you were able to drop this interval lower you would see even more sharing of the load.
Core i7 is the same. Task Manager does not always report the load from the correct physical core so I think it's possible that two threads could end up on the same core but this is happening so rapidly that for most tasks, you're better off having hyper threading enabled. If you're not sure, run some benchmarks. It all depends on how well threaded an application is.

From the Microsoft paper listed above:

"the scheduler in the Windows Server 2003 family and Windows XP has been modified to identify HT processors and to favor dispatching threads onto inactive physical processors wherever possible."

XP and newer are designed to favor a free core but there is no guarantee that it will always be 100% successful when doing this. Some bios versions screw up the logical order of processors which can screw up the Microsoft scheduler.
 
Last edited:
I'll post this link once again. http://www.guru3d.com/article/intel-core-i7-920-and-965-review/15
BTW once we dropped HT in the BIOS the results dropped massively as well hovering at 9'ish FPS.
With HT enabled, they got 12.0-12.8 and 11.7-12.5.

The short answer is that it depends. If your apps can really take advantage of the 8 logical processors over just the 4 physical processors, then HT can help a lot. If you're not doing anything to take advantage of the additional processors, you may not notice any difference at all.

If you're using a 4 core CPU, you should have the SMP kernel installed anyway. Turning HT on and off should be a simple matter of changing a BIOS option, and will let you see if your particular system and apps do better with it on or off. Note that HT on a single core means that it should be using different kernels for HT-on (2 logical processors) and HT-off (1 logical processor), which means reinstalling Windows, so it's not quite as simple to test.
 
I'll post this link once again. http://www.guru3d.com/article/intel-core-i7-920-and-965-review/15If you're using a 4 core CPU, you should have the SMP kernel installed anyway. Turning HT on and off should be a simple matter of changing a BIOS option, and will let you see if your particular system and apps do better with it on or off. Note that HT on a single core means that it should be using different kernels for HT-on (2 logical processors) and HT-off (1 logical processor), which means reinstalling Windows, so it's not quite as simple to test.
So what would the optimal choice be if I plan to enable HT only for encoding? Install windows with HT originally off? Or would that only install the non-SMT kernel? Is it worse to run the SMT kernel with HT disabled like it will be most of the time?
 
So what would the optimal choice be if I plan to enable HT only for encoding? Install windows with HT originally off? Or would that only install the non-SMT kernel? Is it worse to run the SMT kernel with HT disabled like it will be most of the time?

You shouldn't (can't?) run the SMP kernel on a single processor and vice versa. On an i7, you have either 4 or 8 processors, so you should be using the SMP kernel either way. On an old single core HT CPU, you would have either 1 or 2. With HT off, you should (can only?) be running the single CPU kernel, but with HT on you'd want (need?) the SMP kernel.

With Windows, it's basically just two options, Single or Multiple. It doesn't matter if it's 2 or 4 or 8, they all use the same "Multiple CPUs" kernel. It should only be an issue where the HT option switches you between 1 and 2 processors.
 
I say leave it on. It's not going to hamper you unless you're going for a record overclock or something.
 
Unless you are having overclock or heat issues, leave it on. If you happen to run an app that can benefit from HT, the gain you get will outweigh the slight losses you might get in other apps.

Intel decided it was a good idea to re-implement HT, so their engineers must see some reasonable advantage in it (it's not like they have AMD breathing down their necks to the point they need to put it in for marketing purposes).
 
http://ixbtlabs.com/articles3/cpu/ci7-turbo-ht-p2.html

Despite its new reincarnation, Hyper-Threading is still as controversial as in times of NetBurst. This technology yields zero performance gains according to our overall score (rounded), even though some tests demonstrate significant performance gains or drops. The reasons are lying on the surface: it's not easy to optimize software for virtual multiprocessing. What concerns Intel, this company abandoned this field, having rolled out truly multi-core processors -- and software developers immediately followed suit. To all appearances, Hyper-Threading is being revived now. However, developers already accumulated negative experience -- HT had been actively advertised at first, and then it was forgotten because of more popular market tendencies. So those developers, who have already mastered this technology in its first reincarnation, will hardly welcome the revival of HT.
 

Ok, that makes sense, but back to the OPs 'point' which was (of course :rolleyes:) that windows is 'broken' and does things different than other OSes. I presume all OSes do this and get the same benefit and detriment from doing so.
 
Hyperthreading helps in heavily threaded apps, and games (so far) have not generally fallen in this category. I say "heavily threaded" meaning more than two threads getting a real workload simultaneously. If you do rendering or video encoding you get a preview of how it helps. In the future, maybe we'll see more of this from games, but it's difficult to do or we'd have seen it used more by now. DirectX 11, by the way, helps with multi-threaded performance for a lot more things (including tesselation, or the breaking down of a base mesh + displacement map into the final triangles before render) which do not require explicit programming, since they are part of the 3D setup and render cycle (as opposed to game logic).

Also, Microsoft acknowledges issues with the performance penalty for heavily threaded apps in Vista and XP, and Windows 7 has been optimized for up to 256 cores (Vista was optimized for up to 32 cores, after which locking penalties were increasingly heavy).

Also, in regards to the debate on whether single-threaded workloads move between cores, this is something a developer can specify. Specifically, I see highly transactional workloads move between cores a lot, and some apps are "sticky" - something the developer has some control over.
[Edit] Here you go: Windows 7 Boosts Hyper-Threading Support
 
Last edited:
Unless it can give you a 400mhz + boost in oc'ing capability why disable it?

I have seen no reason actual reason given.
 
I have seen no reason actual reason given.

Most applications do not benefit from HT and some applications such as Unreal Tournament 3 and WinRar runs up to 9% slower with HT enabled...
 
unless you are running telemetry for n.a.s.a., leave it off. it also adds about 15c at load when enabled. and you will overclock higher, if you plan on doing that thing. mine runs at 85c 4ghz with ht enabled, and 68c at 4400mhz with it disabled. same vcore.
 

Nice article. So it depends on your use of the CPU, clearly. For games it has little and often detrimental effect so it's better to leave it off. I don't play PC games often and if I do, they're older games anyway so I don't need i7 performance. What I do need is fast encoding and I always use H.264 for video so the x264 codec's performance boost from having HT enabled would be great for me.

The major question is which provides the greater performance boost overall: having HT enabled, or having a higher clock speed due to temperatures being lower with HT off? Those tests only seem to be for stock speeds but turbo boost offers performance boosts of around 5-10% most of the time and that's due to a 5% increase in clock speed unless I'm mistaken?
 
and here i was under the impression that there was no reason to own an i7 with HT disabled..............

someone needs to run a comparison review of the i7 wo/ HT and a C2Q at the same speeds IN GAMES.
 
and here i was under the impression that there was no reason to own an i7 with HT disabled..............

someone needs to run a comparison review of the i7 wo/ HT and a C2Q at the same speeds IN GAMES.

In games you shouldn't see any meaningful difference between the two of them. If you do it should be in the i7's favor regardless of HT being enabled or not. Lets also bear in mind that for multi-GPU configurations, SLI and Crossfire seem to stretch their legs a bit farther on the Core i7.
 
Last edited:
I just did some simple tests about HT on/off. I used 7-zip internal benchmark feature and Cinebench R10 to test since they allow me to control how many Threads I want them to use. Each test I did 3 times and take the average value of 3 results.

Simple config. for reference:
Core i7-920@stock
2GB DDR3 x 3 trip channel
Vista SP2 32bits

Test result:

HT on

7-zip 2 Threads - 5649
7-zip 4 Threads - 9853
7-zip 8 Threads - 16325

Cinebench R10 2 Threads - 5688
Cinebench R10 4 Threads - 9665
Cinebench R10 8 Threads - 13353

HT off

7-zip 2 Threads - 5743
7-zip 4 Threads - 11073
7-zip 8 Threads - n/a

Cinebench R10 2 Threads - 6253
Cinebench R10 4 Threads - 11503
Cinebench R10 8 Threads - n/a

The above result show that if a program that limited its usage on 4 threads or lower, then HT off perform better, HT only benefit programs that use more than 4 threads on a 4 physical cores i7.
 
I would never turn HT off.

Why own an i7 then? Just buy a C2Q and call it a day.

HT is one of the reasons the i7 owns.

Edit: Just go ahead and turn off your L2 and L3 Caches too, they are only there for looks.
 
Xbitlabs

Look at the last section of the page. There is a little chart showing enabling HT on had a negative impact on certain games.
 
I would never turn HT off.
Why own an i7 then? Just buy a C2Q and call it a day.

I am sorry to disappoint you but the i7 is much more than a C2Q with HT.
i7 features many architectures advancements such as the embedded memory controller...

The problem with HT is that most applications do not benefit from it. In fact, some applications are even slower when HT is on.

So, for normal user, feel free to turn off HT. Not only the performance will be better or unchanged but your power bill will thank you...
 
I'd say if you're a gamer, leave it off. For normal day-to-day tasks it's a toss-up. Turning it off might hurt performance slightly but it'll also reduce heat and power consumption. For people who do video encoding, like me, you'll want it on because x264 benefits greatly from it. :)

In fact I'm gonna try turning it off and seeing what it does to my temperatures but I think it'll have to stay on in the long run.
 
I'd say if you're a gamer, leave it off. For normal day-to-day tasks it's a toss-up. Turning it off might hurt performance slightly but it'll also reduce heat and power consumption. For people who do video encoding, like me, you'll want it on because x264 benefits greatly from it. :)

In fact I'm gonna try turning it off and seeing what it does to my temperatures but I think it'll have to stay on in the long run.

The only reason to turn Hyperthreading off on any Core i7 system is if you are a benchmark whore. The "negative impact" that HT has on any game's performance is negligible. The difference isn't something you are likely to feel in games or even see. Only people interested in benchmarking performance will see a difference. I think the performance gain in applications offsets any performance lost that might be experienced in games. Even with HT on the performance in games is unmatched by anything else.
 
Nice article. So it depends on your use of the CPU, clearly. For games it has little and often detrimental effect so it's better to leave it off. I don't play PC games often and if I do, they're older games anyway so I don't need i7 performance. What I do need is fast encoding and I always use H.264 for video so the x264 codec's performance boost from having HT enabled would be great for me.

The major question is which provides the greater performance boost overall: having HT enabled, or having a higher clock speed due to temperatures being lower with HT off? Those tests only seem to be for stock speeds but turbo boost offers performance boosts of around 5-10% most of the time and that's due to a 5% increase in clock speed unless I'm mistaken?

+1 Depends on if you overclock and what you're doing.
 
does turning off HT lower the temperatures enough to overclock significantly more?
 
Back
Top