Author: Bo Persson
Date: 10:32:18 10/19/00
Go up one level in this thread
On October 19, 2000 at 11:02:39, Bas Hamstra wrote: > [...] > >Do you remember what keeping Attack info incrementally costed Crafty speedwise? >Did it slow you down much? I am interested. Visual C can handle plain bitboards >really well. The slowdown is in the "on the fly" stuff. For my program, that is. I'm not Bob, but... One problem with the incrementally updated bitboards is that MakeMove updates (and later backs out!) a lot of information that is really never used, like attacks on your own pieces. *If* you have AttacksTo bitmaps available they are really useful, but very expensive to maintain. I immediately got a 10-20% speedup from the greatly simplified MakeMove/UnmakeMove when I removed them from my program. I gained a few % more when I realized that the new IsAttacked() function, replacing IsEmpty(AttacksTo[Square]), could shortcut after finding just *one* attacker. You don't need the complete attackers info! I only need a complete attackers list when the king tries to get out of check. It is relatively cheap to compute this if and when it is needed. You can also "cheat" here and exclude the opponents king from the calculations, as it cannot be among the checking pieces! Saves a few clocks :-) >I can do 5M AttacksTo's a sec. Not bad. Also not exactly free. If you do MANY of >them it will seriously affect NPS. > > > >Regards, >Bas. Bo Persson bop@malmo.mail.telia.com
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.