Author: Eric Oldre
Date: 10:51:13 06/30/04
I got the new version of my engine to a working state late last week. By "working" I mean it would actually play a game of chess in winboard and arena. I implemented a perft function and it ran a perft 6 in 24 seconds on my athlon64 3200+. This was much better than I expected. I thought the next step i would take would be to add bitboards, and have incrementally updated attack tables. So sunday/monday night i threw together some code. //added to the board struct U64 bb_pieces[13]; U64 bb_players[3]; U64 bb_all; U64 bb_attacks_from[64]; U64 bb_attacks_to[64]; I updated the attack tables in move_apply() by using a technique which i later found was similar to the technique mr. Hyatt describes in his paper at: http://www.cis.uab.edu/info/faculty/hyatt/bitmaps.html I'm talking about what he calls "Computing attacks_from[64] using normal bitmaps.". Not the rotated bitmap approach. I knew my perft test would take a hit since i wasn't yet using the attacks_from[] in my move generator. But I thought I would probably be able to make that up with the increased speed of my move generator, Once my attack_table code was optimized. I typed in "perft 6", hit enter, and 127 seconds later I realized that incrementally updated attack tables might be more work than I at first thought. So now I'm back to the drawing board, I figure that if I start using the rotated bitboard approach i should be able to shave a large chunck of that time off, and there is still plenty more i could have done with my code as it stands, It was really more of a proof of concept. I'd really like to use incrementally updated attack tables if possible. even if they are slower in a perft test than generating the attacks in move_gen and throwing them away, I figure that my engine will spend most of it's time in eval anyway, and if having attack information there pre-computed speeds eval up or allows a more detailed eval in the same time, then that is worth the cost in making a move. What are other peoples thoughts on incrementally updated attack tables? Who else uses them? any with available source to study? Those people that do use them? are they bitboard or array based? What do people think about keeping both attacks_to and attacks_from updated, or just one or the other? Eric Oldre
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.