Computer Chess Club Archives




Subject: Re: Differences between 0x88 ,10x12 and Bitboards!?

Author: Robert Hyatt

Date: 11:14:35 11/19/02

Go up one level in this thread

On November 19, 2002 at 13:30:57, Christophe Theron wrote:

>On November 19, 2002 at 13:15:09, Gerd Isenberg wrote:
>>On November 19, 2002 at 12:25:11, Gian-Carlo Pascutto wrote:
>>>On November 19, 2002 at 11:35:24, Robert Hyatt wrote:
>>>>Bitboards have a bit of a performance advantage on 64 bit processors,
>>Hi Gian-Carlo,
>>I think that's evident. If the none bitboarders have to use implicite native
>>data-width of 64 bit integers, they have to transfer 32 additional zero bits
>>without any additional information for each integer access. Of course you will
>>pack some data, but all the local ints...
>>So the information density for bitboarders grows with 64bit-architectures
>>relative to none bitboarders. That also effects register usage, and that's IMHO
>>more important. On x86-32bit architectures you can only hold three bitboards in
>>registers, and thats even most a hard task. Actually, if you have a local
>>routine with three bitboards and a few ints on the stack, there are a lot
>>register/memory moves. Simply the data-width doubles the number of bitboard
>>registers, not considered the increase in general purpose registers, or with
>>hammer the number of mmx- and 128-bit xmm registers.
>>Whether a bitboard based program is stronger than a none bitboard program
>>depends obviuosly also on other things, but in principle :)
>You have just explained why the bitboarders are less handicapped on 64 bits
>You have not explained why they are supposed to have "a bit of performance
>advantage on 64 bits processors".
>    Christophe

Actually he _did_ explain.  A 32 bit program, running on a 64 bit machine,
simply passes
32 bit values around, taking _no_ advantage from the additional 32 bits of data
that is
available.  A bitboard program, on the other hand, _does_ get an advantage.
Rather than
having to use two instructions for 64 bit AND/OR/XOR instructions, it can use
just one.
Rather than using even more to do 64 bit shifts, it uses just one.

Seems intuitive that 64 bit programs will run faster on a 64 bit processor, even
if the 64 bit
processor executes instructions _exactly_ at the same speed (and using the same
number of
registers and so forth).  All the 64 bit stuff reduces to a single instruction,
while the normal
chess program does _exactly_ the same work on either...

This page took 0.02 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.