[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: