Hyperthreading and Power Consumption/Temperature

DrinkTea

Limp Gawd
Joined
Feb 21, 2013
Messages
377
What is the effect on power consumption, temperature and overclockability of having hyperthreading on or off? If there is an effect, is it consistent across models that support HT? Thank you.
 
Can't answer all your questions, but I know enabling HTT on my 3930K increases temps about 5-7c or so at idle. Unless you regularly max out your cpu with something that can use 8 threads (or 12 in the case of SB-E 6-cores) like video converting or 3D rendering, etc. I would forego a HTT CPU or disable it if you get/have one with it. It just doesn't add much for the costs, in typical scenarios imo.
 
My primary use is for scientific/statistical computing. In my experience and from what I've read, HT doesn't help with that. Higher clock speed however, does. So if I can get a CPU with HT, all else being equal, and can get higher clocks by disabling it, well, that would be nice.
 
HT in my sandy 2600 increase the temperature just over max load temps.. Not on idle i keep idling 22-24. HT on or off... But the load temps make a noticeable diference between 5-10 Celsius... And yeas OC by example a i7 3770k with HT off you will notice a lot of performance on that kind of programs cuz all the speed will be used on the 4 cores... I noticed that on my 2600 on games mainly..
 
My primary use is for scientific/statistical computing. In my experience and from what I've read, HT doesn't help with that. Higher clock speed however, does. So if I can get a CPU with HT, all else being equal, and can get higher clocks by disabling it, well, that would be nice.

If you have the time, you should probably run some tests yourself and report back.

And yeah having a higher clock rate could be more beneficial than HT for computing since the bottleneck will rely more on the execution part of the pipeline- and with it mostly being SIMD, there probably won't be that many instructions that you're going to want to be fetching concurrently- especially if the data is relying on previously computed data.

So with HTT, yeah they're going to be parallel fetching 8 instructions, but they're still going to be fighting for the 4 FPU's anyways. But then again, you could be dealing with unique data, where not all your matrices are floating points, and your pipeline can be used more for other instructions.
 
To give a short answer; I would say yes, disabling HT will give you more OC headroom and if that is better for your application, you should disable HT.
 
So, to clarify with a concrete example, if I have a 3570K and a 3770K, the 3770 with HT on should OC about the same, but can do better with OC off?
The only time I've ever done a formal test was when I ran the MATLAB benchmarks a few years ago on my 920. With HT on, it was actually slower, but maybe things have changed and even some computational applications are optimized for hyperthreading now.
And perhaps a more subtle question. If turning OC off affects heat and power consumption will it be possible to attain the same clocks at lower voltage and still be stable?
 
but maybe things have changed and even some computational applications are optimized for hyperthreading now.
How can you optimize for HT? The only thing I can do is try to detect HT, and reduce workload to ensure only real cores would be used, to prevent critical situations.
 
So, to clarify with a concrete example, if I have a 3570K and a 3770K, the 3770 with HT on should OC about the same, but can do better with OC off?
The only time I've ever done a formal test was when I ran the MATLAB benchmarks a few years ago on my 920. With HT on, it was actually slower, but maybe things have changed and even some computational applications are optimized for hyperthreading now.
And perhaps a more subtle question. If turning OC off affects heat and power consumption will it be possible to attain the same clocks at lower voltage and still be stable?

Not necessarily. 3770k with HT may overclock less than a 3570 and OC the same with HT off. Everything is speculative and no two chips are going to be identical. The only way to know the answer to this is to try it on your specific CPU.

The one advantage of an i7 over an i5 though is the additional cache, so everything else being equal (HT off and the same clock speed) the i7 will still be a bit faster.
 
How can you optimize for HT? The only thing I can do is try to detect HT, and reduce workload to ensure only real cores would be used, to prevent critical situations.

This is a little outdated (due to modern processors having way more execution resources), but most of the suggestions still stand:

http://msdn.microsoft.com/en-us/magazine/cc300701.aspx#S7

1. Go easy on the locking.

2. Try to keep separate processing loads in separate threads (i.e. make 1 thread FPU, 1 thread ALU). This allows scheduling of two threads at once to happen more efficiently.

If you design it correctly, HT can get you a 20-25% speedup if you have enough threads to feed it (you can see upwards of 40-50% increase on in-order processors like the Atom).

A few good examples that see impressive (15% or more) gains:

Cinebench

x264 (Handbrake)

Folding@Home

Visual Studio 2012

3D Studio MAX

7-Zip
 
Last edited:
Not necessarily. 3770k with HT may overclock less than a 3570 and OC the same with HT off. Everything is speculative and no two chips are going to be identical. The only way to know the answer to this is to try it on your specific CPU.

The one advantage of an i7 over an i5 though is the additional cache, so everything else being equal (HT off and the same clock speed) the i7 will still be a bit faster.

OK, but I'm asking on average. You can never know for a specific chip, but with even a reasonable amount of data, we can assess if the mean effect is 0.
 
This is a little outdated (due to modern processors having way more execution resources), but most of the suggestions still stand:

http://msdn.microsoft.com/en-us/magazine/cc300701.aspx#S7

1. Go easy on the locking.

2. Try to keep separate processing loads in separate threads (i.e. make 1 thread FPU, 1 thread ALU). This allows scheduling of two threads at once to happen more efficiently.

If you design it correctly, HT can get you a 20-25% speedup if you have enough threads to feed it (you can see upwards of 40-50% increase on in-order processors like the Atom).

A few good examples that see impressive (15% or more) gains:

Cinebench

x264 (Handbrake)

Folding@Home

Visual Studio 2012

3D Studio MAX

7-Zip

Pretty much what I was going to say.

Run your calculations back to back, one with HT on, one without at the same clocks. Then max your oc with both, then use what ever gives you the best performance. That should give you your answer.

/thread.
 
Back
Top