Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question to Bob: Crafty , Alpha and FindBit()

Author: Vincent Diepeveen

Date: 08:18:54 06/08/98

Go up one level in this thread


On June 08, 1998 at 11:01:11, Robert Hyatt wrote:

>On June 08, 1998 at 10:34:23, Vincent Diepeveen wrote:
>
>>On June 08, 1998 at 07:37:44, Robert Hyatt wrote:
>>
>>>On June 08, 1998 at 07:17:08, Vincent Diepeveen wrote:
>>>
>>>>
>>>>On June 05, 1998 at 21:48:57, Robert Hyatt wrote:
>>>>
>>>>>On June 05, 1998 at 17:47:07, Bruce Moreland wrote:
>>>>>
>>>>>>
>>>>>>On June 05, 1998 at 08:53:53, Ernst A. Heinz wrote:
>>>>>>
>>>>>>>BTW, we have been waiting to get our hands on a Alpha-21264 for roughly
>>>>>>>a year because "DarkThought" will hopefully speed up as much on them
>>>>>>>as "Crafty".
>>>>>>
>>>>>>What percentage of execution time do you and Bob spend doing these
>>>>>>operations, do you think?netscape -install
>>
>>>>>>
>>>>>>bruce
>>>>>
>>>>>FindFirstOne() = 1-2% in crafty.  popcnt is much less...  so that won't
>>>>>help a whole lot.  but the 64 bit stuff helps in general...
>>>>
>>>>Well that doesn't say anything concrete.
>>>>
>>>>More important is the overall delay.
>>>>
>>>>At a P133 intel the speed difference between crafty's move generator
>>>>and diep's move generator is somewhat more than 3 times.
>>>>
>>>>Crafty is more than 3 times slower, because of bitboards, which perform
>>>>badly at 32 bits. Note that the more possibilities, this 3 times will
>>>>become
>>>>4 times.
>>>>
>>>>For something taking 1 clockcycle in my program and which can
>>>>be even pipelined in U + V pipe,
>>>>crafty needs sometimes even a whole function.
>>>>
>>>>Greetings,
>>>>Vincent
>>>
>>>
>>>yes... but try to generate nothing but captures and compare that, which
>>>is a major part of the total tree search...
>>
>>Where do i need to generate captures for?
>>
>>But to answer your question: 2.5 times faster.
>
>
>Because in ordering alpha/beta moves, captures are searched first.  And

this statement is already naive.

I search a move that gives a cutoff. Sometimes a capture, sometimes a
check,
sometimes a promotion, depending on what move is gonna give me the
cutoff.

I think we directly here see why Diep's branching factor is that well.
I don't have a special order. I pick simply the move that is very
probably gonna give me a cutoff.

>they cause most of the cutoffs.  If you just produce captures, you don't
>have to continually wade through the non-captures picking out capture
>moves to try...
>
>and the best test to try is to set up a position in Crafty, and use the
>"perf" command...  set up a position such as kopec22 which is a
>reasonable
>early middlegame position, and type "perf".  On a single processor
>pentium
>pro, that produces the following:

We cannot compare our processors. I have a P133 at the same speed,
but i don't have a Pentium pro SDRAM with 512 kb cache at a fast
mainboard,
like you have.

I have a P133 laptop with a processor which is exactly 133Mhz,
and i have a pro 200Mhz 256kb cache with edoram, which is way slower
than
your pro. My datastructure doesn't fit within 256kb cache, except when
i'm
just generating moves... ...so that'll be a fair compare except for the
SDRAM.
I'm not sure what influence it has on just generating moves over and
over again.

>Black(1): perf
>generated 3300000 moves, time=1.38 seconds
>generated 2391304 moves per second
>generated/made/unmade 3300000 moves, time=4.94 seconds
>generated/made/unmade 668016 moves per second

We must not forget that if i generate moves (3 times faster), that
i store an entire structure for every move, where you only do

*move++ = int;

We should take this into account.

I'm storing a lot of different stuff with a move which gets used in the
move ordering and evaluation.

I'm now here under UNIX at a slow HP9000 model 712 (60Mhz).
When i'm at home i do this test special for you, where i shall replace
that
storing of datastructure.

>IE I can generate all moves from that position for white, at 2.4M moves
>per second, or I can generate all the moves, and then make each one, and
>do that at 670K moves per second...

>What's your speed?  here is the position, diagram and FEN:

We should compare branching factor, that would be nice.
You may use your 512MB SDRAM 4 processor against my pro200,
also nice would be to do this generating of moves at a K6 or P133, which
clearly will show that factor 3 to 4.

>Black(1): d
>
>       +---+---+---+---+---+---+---+---+
>    8  |   |   | *R|   |   | *R| *K|   |
>       +---+---+---+---+---+---+---+---+
>    7  |   | *B| *Q| *N| *B| *P| *P|   |
>       +---+---+---+---+---+---+---+---+
>    6  |   | *P|   | *P| *P| *N|   | *P|
>       +---+---+---+---+---+---+---+---+
>    5  | *P| P |   |   |   |   |   |   |
>       +---+---+---+---+---+---+---+---+
>    4  | N |   | P |   | P |   |   |   |
>       +---+---+---+---+---+---+---+---+
>    3  | P |   |   | B |   | N |   | P |
>       +---+---+---+---+---+---+---+---+
>    2  |   | B |   |   | Q | P | P |   |
>       +---+---+---+---+---+---+---+---+
>    1  | R |   |   | R |   |   | K |   |
>       +---+---+---+---+---+---+---+---+
>         a   b   c   d   e   f   g   h
>

Cool this has a lot of possibilities. That'll go with many many million
moves
a second!

>2r2rk/1bqnbpp/1p1ppn1p/pP/N1P1P/P2B1N1P/1B2QPP/R2R2K b



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.