On Tue, 2003-06-10 at 13:19, Robert Jonsson wrote:
tisdagen den 10 juni 2003 22.16 skrev Andrew
Burgess:
Hyperthreading - the new fancy P4's have it. Does it do anything on
linux? I saw some benchmarks where it really sped up video encoding (on
windows), how similar to sound processing is this?
Alan Cox says HT provides 0-30% speedup.
There was a recent thread on the Jack mailinglist where it seemed likely that
latency would suffer when HT was enabled, if I read the thread right... It
may had to do with using HT _and_ dual processors though, can't remember...
The one I tested was a single processor P4 with HT enabled. With it
enabled I see latency spikes (10-15mseg) and weird behavior of Jack as
well. Steve (Harris) wrote something about threads not being happy on an
HT processor. So I guess we'll have to wait till there is better kernel
support (or maybe there is a kernel patch that fixes this?)
The votes are still somewhat out on Hyper-Threading. The basic idea is the
single processor has two state machines, and can thus inter-leave two streams
of execution thru all the various queues and pipelines inside the CPU.
The problem with Linux and SMP systems is with scheduling, since the current
scheduler sees four processors instead of two, and it doesn't know which
two are the 'evil twins' - bad for CPU cache warmth. Mostly fixed in 2.5, i
believe. Dunno if there are backports to 2.4 available..
Basically, how 'good' HT performs depends on how 'tight' the code is. Code
that
grabs the CPU and runs intensively won't see any improvement from HT. The big
improvements are seen when you have multiple processes that jump on and off
the CPU, essentially the CPU doesn't have to flush the pipelines out so often.
What you saw sounds like the bad scheduler stuff, forces extra TLB misses and
causes hiccups.
cliffw
-- Fernando