Computer Chess Club Archives


Search

Terms

Messages

Subject: 0x88 and move generator speed

Author: José Carlos

Date: 06:08:59 01/29/01


  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.

  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.03 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.