Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 0x88 and move generator speed

Author: Larry Griffiths

Date: 18:44:46 01/30/01

Go up one level in this thread


On January 29, 2001 at 09:08:59, José Carlos wrote:

>  As I started to rewrite my book management code, I decide to rewrite the whole
>engine in order to get more speed and being able to include new knowledge
>without getting too slow.
>  With that idea, I tried changing my board[64] for a 0x88 move generator. Right
>now, I've only written the move generator but, when I tested it to measure if
>any improvement in speed, I got amazed. In this position:
>
>[D]rnbqkbnr/ppp2ppp/8/3pp3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq d6 0 3
>
>  that, if I'm not wrong, is call "Vincent's test" (because Vincent Diepeveen
>created it), where you have to generate all moves 2,000,000 times, I was getting
>about 9,500,000 moves per second (8.5 seconds for the whole test) in my AMD
>Athlon 550, with my old board[64].
>  Now, with 0x88 I'm getting about 14,500,000 mps (5.5 seconds), which is a huge
>improvement (I don't remember the exact numbers; it happend last night and I'm
>at work right now).
>  My questions:
>    - is my new number (14,500,000 moves per second) really fast for my hardware
>or I was really slow with my previous board[64]?
>    - does it make sense such improvement in speed for that change?
>    - could you please post your results in this test (and your hardware) for
>your programs, so that I can compare.

My hardware is a 550Mhz Pentium III xeon processor.
I get 10,579,212 moves generated per second using the position you posted.
My run is posted below:

1/30/2001 8:34:28 PM | This machine is MMX capable...
1/30/2001 8:34:29 PM | Hash entry size is            26 bytes...
1/30/2001 8:34:29 PM | Hash Table size is    16,777,202 bytes...
1/30/2001 8:34:32 PM | ------------------------------------------------------
1/30/2001 8:34:32 PM | Setting up the board using the following EPD string...
1/30/2001 8:34:32 PM |
1/30/2001 8:34:32 PM | rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -
1/30/2001 8:34:32 PM |
1/30/2001 8:34:32 PM | White Kingside Castleing Enabled
1/30/2001 8:34:32 PM | White Queenside Castleing Enabled
1/30/2001 8:34:32 PM | Black Kingside Castleing Enabled
1/30/2001 8:34:32 PM | Black Queenside Castleing Enabled
1/30/2001 8:34:39 PM | Bitboard Move Generations Made=      40,000,000
Bitboard Move Generations Per Second=      10,579,212

1/30/2001 8:34:59 PM | Makes/UnMakes Made=      40,000,000
Makes/UnMakes Per Second=       2,828,854

1/30/2001 8:35:38 PM | Generate/Makes/UnMakes Made=      40,000,000
Generate/Makes/UnMakes Per Second=       2,124,495


>
>  Tonight I'll continue with my make/unmake functions, which were my bottleneck
>in Averno. I realized that the inCheck detection determined the speed of all the
>program. Is there any "smart" trick for make fast in check detection with 0x88?
>
>  Thanks in advance,
>
>  José C.



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.