Computer Chess Club Archives


Search

Terms

Messages

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

Author: Uri Blass

Date: 10:31:56 08/31/03

Go up one level in this thread


On August 31, 2003 at 13:20:29, Anthony Cozzie wrote:

>On August 31, 2003 at 11:50:53, Steven Edwards wrote:
>
>>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.
>
>I didn't see that you were running on a laptop :)
>
>Note that IPC of processors is different: if your code ran on a 3.0G PIV it
>would probably run at .0001 Mhz :) No one gets good IPC on the PIV.
>
>Anyway, if we assume that cycles would be the same on an Athlon, your code would
>take 1.2E8*2334*(1.4E9)^-1 = (1.2*2.334/1.4)E2 = ~200 seconds [600Khz].  Zappa
>does the same computation in 60 seconds [2Mhz] (and yes, that includes material
>counters, transposition key, pawn hash key, 50 move counter, etc).

I have some questions:

1)Do you include also:

4. For each color, the BB of squares attacked by that color.
6. For each square, the BB of squares attacked from that square.
7. For each square, the BB of squares attacking to that square.

2)How do you calculate the time that cycle takes and the number of cycles per
node?

I know nothing about these things.
The only thing that I can find is the nodes per second on the computer that I
develop.

Uri



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.