[Computer-go] Kas Cup - results and prizes

Hideki Kato hideki_katoh at ybb.ne.jp
Thu Aug 9 04:09:55 PDT 2012

Erik van der Werf: <CAKkgGrM83_HsQ5Z2HJupkj=gDeh3+4GM-JmLVEvtjRoUFqNvdA at mail.gmail.com>:
>On Thu, Aug 9, 2012 at 11:14 AM, Petr Baudis <pasky at ucw.cz> wrote:
>> On Wed, Aug 08, 2012 at 09:08:47PM +0200, ds wrote:
>> > Hyperthreading does the trick, I have the experience it increases the
>> > performance by about 10%. I think this is due to waiting for RAM I/O or
>> > things like that....
>> Yes. With hyperthreading, performance per thread goes down
>> significantly, but total performance goes up by about 15%. In the
>> Pentium 4 era, hyperthreading did not usually pay off, but with i7,
>> its performance is much better. The basic idea is that there are two
>> instruction pipelines that share the same ALU and other processor units;
>> if one of the pipelines stalls (usually due to memory fetch), the other
>> can use the ALU in the meantime, or the two threads may use different
>> parts of the CPU altogether based on what the instructions do.
>10-15%, really, that low? For my program (on an i7-3930K, going from 6 to
>12 threads) it is more in the order of 40% extra simulations per second.

In general that number highly depends on the code, architecture of the 
processor (Intel's are usually better than AMD's), memory speed, cache 
size, use of ALUs, etc.  For Zen, the number is also about 40% on both 
an i7 3930K (6 to 12 threads) and an i7 920 (4 to 8 threads).

Pasky, modern processors are much more complicated :).  There are more 
than two sets of general registers, which are used not only for 
hyperthreading but also register renaming, for example.

Hideki Kato <mailto:hideki_katoh at ybb.ne.jp>

More information about the Computer-go mailing list