Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 0x88 and move generator speed

Author: Dan Newman

Date: 19:30:13 01/29/01

Go up one level in this thread


For comparison with the bitboard data, here's what Skyblue
(my old 0x88 program) gets:

On a P3/600 (non-coppermine):

     position     captures    non-captures    both together
     ------------------------------------------------------
     Vincent's       1.8          33.4            17.7
     Dann's          0.0          57.1            30.3

On a P3 (coppermine) at 980 MHz:

     position     captures    non-captures    both together
     ------------------------------------------------------
     Vincent's       3.1          56.1            29.7
     Dann's          0.0          95.2            51.3

Hmm.  Very interesting.  Here is the P3/980 data from above
compared to the P3/980 bitboard data from my previous post:

Vincent's position:

     movegen type  captures   non-captures   both together
     -----------------------------------------------------
     bitboard        6.1          62.3            43.6
     0x88            3.1          56.1            29.7

Dann's position:

     position     captures    non-captures    both together
     ------------------------------------------------------
     bitboard        0.0          72.6            53.7
     0x88            0.0          95.2            51.3

The bitboard ends up edging out the 0x88 because its capture
generator is much faster.  Given a sparsely occupied board
(Dann's position), the 0x88 is a good deal faster generating
non-captures, but the bitboard capture generator gets done a lot
faster--and that's the generator that really counts.

Move generation speed is not really why I favor bitboards though.
I find it a lot easier to deal with bitboards than piece lists.
With piece lists you have to make a lot of decisions about whether
to leave captured pieces in the list and just mark them as
captured, or to contract the piece list and whether to do this
on-the-fly while searching or do it only at the root.  Bleh.
Bitboards are a lot simpler in this respect.

I think my bitboard SEE is much faster than the 0x88's too, though
I haven't profiled either recently.

On the P3/980 my 0x88 program currently gets 946 knps on WAC at
1s/posn.  The bitboard program gets 1044 knps, and that's with
significantly more evaluation code.

The 0x88 program hasn't got much beyond material eval, just a little
pawn shield code, bishop pair, and some eval for pieces bearing on
the king's position.  The bitboard program has all that in addition
to piece square tables, a lot more pawn eval, bonuses for rooks on
7th, rook behind passed pawns, bishop mobility, trapped knight,
outposts, and so forth...

So, for me at least, bitboards are a fairly big win over 0x88 and
over anything else I've tried.

-Dan.



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.