Computer Chess Club Archives


Search

Terms

Messages

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

Author: Steven Edwards

Date: 08:50:53 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)

Look again at the numbers.

Machine cycles per node 2334.48 -- on a 3.0 GHz machine, this would be 1.285
MHz.

The node count is based on legal moves only; no pseudolegal bad moves are
included to inflate the numbers.

The material balance is fully propagated to each node as are the hash keys.  A
"beancounter" evaluation would take only a few more cycles per node.



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.