Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 64 bits

Author: Robert Hyatt

Date: 13:51:20 06/21/02

Go up one level in this thread


On June 20, 2002 at 14:32:43, Keith Evans wrote:

>On June 20, 2002 at 13:30:28, Eugene Nalimov wrote:
>
>>Such the experiment will answer the question: "On the 64-bit architecture, how
>>much speedup is caused by the 64-bittness"? I.e. let's imagine 32-bit Alpha or
>>Itanium2. How slower Crafty will be on such the animal?
>>
>>I suspect that the difference will be only ~10%. I.e. Alpha and Itanium2 run
>>Crafty well not because it uses 64-bit data structures, but because they run
>>everything well.
>>
>>Unfortunately, suggested experiment is flawed. Lot of compilers will generate
>>much worse code for the operations with structures than for the operations with
>>the builtin types.
>>
>>Eugene
>>
>
>But if the 32-bit datastructures perform _better_ than Bob predicts, despite the
>"much worse code", then the experimental results could still be useful. I agree
>that if the performance of the 32-bit datastructures is significantly lower
>(matching Bob's prediction) then we won't be able to say whether it's due to the
>compiler or just the 32-bit widths.
>
>Of course this may not motivate Bob to perform the experiment, because it can
>only show that his 64-bit bitboard performance claims are a bit exagerrated. If
>it's in the other direction then the argument will continue.
>
>We can only hope that a scientifically minded new chess engine author who is
>considering the use of bitboards will do some experimentation on these new
>processors and share the results.
>
>-Keith


Did you _ever_ consider that "some scientifically minded authors" might have
_already_ done this?  You did know that Cray Blitz was a non-bitmap program?

You did know that the chess 4.x guys used a non-bitmap program in version
3.x?  That early duchess versions were traditional array-based while the
last duchess program was bitmap?

IE a _bunch_ of us have played with this stuff and decided that 64 bit words
offers some unique things that make a lot of sense.  Speaking only for myself,
I didn't just "switch" for the sake of switching.  I studied bitmaps for _years_
prior to making the change.  I looked at key parts of the chess engine to see
if bitmaps made sense.  I concluded "yes".

It was a lot of work to start over from scratch yet again.  However, to imply
that I did it without due consideration is a bit of a wild stretch.  I did it
after _considerable_ study and deliberation.  I ran tests on 32 and 64 bit
machines in the process.  It makes good sense.  I won't say the gain is 2x,
because not every instruction is fiddling with 64 bit values.  But the
gain is certainly considerable, just by eliminating the duplicate instructions
required on 32 bit machines...

Anybody interested can try both approaches and make the choice themselves.  I've
not suggested that _anybody_ scrap what they have done.  I have repeatedly said
that bitmaps on a Intel 32 bit platform are "break even".  They give some
advantages (generating only captures, easily, is one).  The extra instructions
are bad, although the super-scalar intel machines tend to hide a lot of that
since the instructions can issue in parallel to different pipes.  On 64 bit
architectures, the 64 bit parts of the engine simply run faster, period.  That
represents a significant part of the work being done.  MakeMove() for example
is just about exclusively about updating 64 bit values and nothing else.
Ditto for UnmakeMove().  Those two functions, by themselves, are 15% of Crafty's
total cpu usage.  And they are nearly 100% 64 bit operations with a very few
branches thrown in.  64 bit architectures definitely help those pieces.  There
are others that are equally as complex and intensive on 64 bit operations.

I didn't do it on a lark.  I did it after a _lot_ of consideration.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

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