Re: hyperthreading or not
On Tue, Jan 24, 2006 at 06:45:01PM +0100, Thomas Steffen wrote:
> That kind of defeats the purpose, doesn't it? The idea of HT was to
> increase the utilisation of core CPU groups by having two threads
> ready for dispatch. If one thread stalls, the other thread could still
> dispatch operations, unless... the stall affects both threads.
Stalls are not the problem. Branch prediction misses are the issue when
they cause a pipeline flush. Hyperthreading helps use resources when a
thread stalls waiting for something from memory. It is only when it
hits a branch and guessed wrong, and has to dump the rest of the
pipeline pointing down the wrong branch that things go bad. That
already is a problem for the P4 with it's approx. 30 stage pipeline.
> That would certainly explain the minimal performance gain of HT. On
> the desktop it is still nice to have.
If you have code that is very light on branches, but heavy on
calculations, then HT can help a lot. Branch heavy code just generally
sucks on a long pipeline cpu and HT doesn't do anything to help it.
Len Sorensen
Reply to: