Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: CT benchmarks: bitboard vs. non bitboard

Author: Sune Fischer

Date: 07:58:24 08/31/03

Go up one level in this thread


On August 31, 2003 at 10:20:36, Anthony Cozzie wrote:

>On August 31, 2003 at 02:21:03, Steven Edwards wrote:
>
>>The portable C++ CT toolkit has classes for describing positions either with or
>>without bitboard representation in use.  Here are the results of running both of
>>them for enumerating the 119,060,324 movepaths of length six from the initial
>>position on a 800 MHz G4 PPC notebook:
>>
>>Non bitboard:
>>
>>Frequency 1.07069 MHz
>>Period 933.98 ns
>>Cycles per node 747.184
>>
>>Bitboard:
>>
>>Frequency 342.689 KHz
>>Period 2.9181 us
>>Cycles per node 2334.48
>
>This is why abstracting the very base datastructures is a bad idea.  Your
>program is searching 340knps with no eval function, no pruning, no transposition
>table lookup, etc.  If someone writes an engine based on your bitboard code it
>will probably search 100knps even with just a beancounter eval.  Abstraction
>always costs you in speed; in a chess program you just can't afford a 2x speed
>decrease with no gain (other than being able to easily modify your code)
>
>anthony

I'm not sure the abstraction itself can be blamed.
To me it seems like the basic structures just aren't very fast.

Using attack tables is a *huge* investment, a commitment only the programmer can
make. So if you are going to do abstractions, I'd suggest to make it so that the
tables can be turned off (preferably by default I think:).

-S.



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.