Does hyperthreading work as well on the i-series as it did on P4?

Drenlin

Active Member
I just thought about this, and have no idea what to type in google to find it.

From my limited understanding, it seems that along with some added bits, HT uses the extra parts of the pipeline for the second thread. Prescott saw up to a 30% increase in performance, but it had a monster 31 stage pipeline. Nehalem only has 16...nearly half that. Is the performance benefit(percentage-wise) on the i7 as large as it was on the P4's?
 
Last edited:
I remember having P4 and my HT wasn't enabled in BIOS when I got the PC from Dell....(first and last time, I was a noob :/)

Then I went to the BIOS and enabled it and I saw amazing increase in speed. I don't think it is as big increase as it was in the P4's, that is just me if someone has other opinion, don't slag me off.
 
I just thought about this, and have no idea what to type in google to find it.

From my limited understanding, it seems that along with some added bits, HT uses the extra parts of the pipeline for the second thread. Prescott saw up to a 30% increase in performance, but it had a monster 31 stage pipeline. Nehalem only has 16...nearly half that. Is the performance benefit(percentage-wise) on the i7 as large as it was on the P4's?

Hyperthreading duplicates certain parts of the CPU so that it can alternate threads executing in the pipeline. To execute 2 threads on 1 physical core you have some memory that stores the state of the processing pipeline and alternates the tasks executing according to it's algorithim. In some ways it can be said that it uses the unused parts of the execution path but at the same time that's not entirely accurate.

If you want to read more about it Intel has a good technical overview of HT at ftp://download.intel.com/technology/itj/2002/volume06issue01/vol6iss1_hyper_threading_technology.pdf

Arstechnica has an article as well (haven't read this through entirely) http://arstechnica.com/old/content/2002/10/hyperthreading.ars
 
Hyper threading adds 25% performance from my testing.

When I had my I7 860 I test all sorts of configurations. With 2 cores/4 threads, it was not quite the performance of 3 cores but close. With 4 cores/8 threads, it's the equivalent of having 5 full cores. Thats actually a really big difference.
 
Something odd I've noticed since I started using Windows 7. The odd cores seem to be doing more work (IE the true cores, not the HT ones).

Well, back to the question... As for actual performance increases, I've never disabled it here. But from what Iv'e read here and there, it does seem to be more effective than it used to be. As 87dtna says, it's no substitution for cores, but it's faster than without it.
 
Something odd I've noticed since I started using Windows 7. The odd cores seem to be doing more work (IE the true cores, not the HT ones).
You can actually detect hyperthreading and create a smart scheduler. The reason this happens is the scheduler wants to use the real cores before the logical ones to boost performance. Alternating thread execution based on pipeline stalls and what-not is good to boost overall performance but using a real core is always better :)
 
Correct, it only uses the virtual cores when needed which most of the time is little to none....especially if you got an I7.
 
One serious problem is that setting Affinity will sometimes only allow one thread to be set per core. E.g. if you load up two programs and try to run them on certain pairs of threads, it will only give you a one thread load.

I havent seen this happen when not setting affinity though. But it could be annoying if your trying to do several CPU intensive things at once and want to use affinity to separate the load.
 
Back
Top