Messages in this thread | | | Subject | Re: Hyperthreading performance oddities | From | Andi Kleen <> | Date | 07 Mar 2008 20:20:32 +0100 |
| |
Chris Snook <csnook@redhat.com> writes: > > Turning on hyperthreading effectively halves the amount of cache > available for each logical CPU when both are doing work, which can do > more harm than good.
When the two cores are in the same address space (as in being two threads of the same process) L1 cache will be shared on P4. I think for the other cases the cache management is also a little more sophisticated than a simple split, depending on which HT generation you're talking about (Intel had at least 4 generations out, each with improvements over the earlier ones)
BTW your argument would be in theory true also for multi core with shared L2 or L3, but even there the CPUs tend to be more sophisticated. e.g. Core2 has a mechanism called "adaptive cache" which allows one Core to use significantly more of the L2 in some cases.
> Number-crunching applications that utilize the > cache effectively generally don't benefit from hyperthreading, > particularly floating-point-intensive ones.
That sounds like a far too broad over generalization to me.
-Andi (who personally always liked HT)
| |