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.