Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 0x88 and move generator speed

Author: Dan Newman

Date: 04:15:59 01/31/01

Go up one level in this thread


On January 30, 2001 at 06:26:17, David Rasmussen wrote:

>On January 29, 2001 at 23:32:01, Dan Newman wrote:
>
>>
>>I think the extra speed I found the second time around was due to several
>>factors:  1) I used the MSVC compiler (I had been using Watcom).  MSVC
>>seemed to "amplify" the difference.  2) I switched to non-rotated
>>bitboards which are much lighter on the cache than rotated (I suspect).
>
>What do you mean bu non-rotated? How do you deal with bishops and queens, then?

It just means I don't use rotated bitboards.  I have a bitboard for each
different piece type (12 bitboards) + occupied square bitboards for each
color (2) + an occupied square bitboard (1).  This means make() and undo()
are a bit cheaper since I don't have to update rotated bitboards.  Also,
there are a few large data structures (arrays of bitboards) that aren't
needed as well--so fewer memory hits.

I treat the non-sliding pieces more or less like any other bitboard program,
but for sliding pieces I occasionally resort to scanning the board.  I guess
it might be thought of as a sort of hybrid of bitboard and mailbox.

I suspect (but don't have any hard data) that this is cheaper than doing
rotated bitboards, and it's also much simpler to implement.

OTOH, I think Bas (Hamstra) may have switched to rotated bitboards and
found them to be faster...

-Dan.



This page took 0.01 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.