Ben Ellis wrote:
> from the few articles I've read on hyperthreading (in partilcular this one
> http://msdn.microsoft.com/en-us/magazine/cc300701.aspx). Each logical core
> can have two concurrent instruction streams and if one is waiting for a
> resource (i.e. either in use by another thread or accessing the main
> memory) then the other instruction stream continues while the first stream
> is blocked.

> But because I use independent board states for each thread and the total
> memory used is less than my L3 cache size, none of my threads wait long for
> access to main memory or contend with each other so they don't easily give
> up control to the second stream.

The two streams don't really 'give up control' to each other; they both
run at once. A modern Intel processor can in principle execute something
like four operations per cycle, and in each cycle they can be a mixture
of the two streams.

So it doesn't take anything nearly as 'heavy' as an access to main
memory to mean that you can get value from the second stream.

Even an access to L1 cache takes 4 cycles to complete, and if the
following instructions depend on the value being read then the processor
won't be doing anything else from that stream until the read completes.
And even if there are no reads from memory at all, it's pretty rare that
the processor can find enough parallel work to get close to keeping
four-ish execution units busy from only one instruction stream.


The main reasons why in practice you often don't get value from
hyperthreading are that the two threads are having to share the L1 and
L2 caches, and they also share the resources for instruction fetch and
decode (which can turn out to be a bottleneck disappointingly
frequently).


As long as you're doing light playouts you shouldn't have to worry about
the L3 cache; everything should fit very comfortably in L2 (and quite
possibly in L1, though I don't know what the CLR overhead is like).

-M-
_______________________________________________
Computer-go mailing list
[email protected]
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Reply via email to