Author: Sune Fischer
Date: 09:14:02 07/02/02
Go up one level in this thread
On July 02, 2002 at 11:41:36, Robert Hyatt wrote: >Actually the current version doesn't quite do that any longer. It "ors" >the from/to squares (rotated) together and then XORs that result with the >appropriate rotated board. Saves a couple of operations... Where can I find this code? What I copied was from 18.15 in make.c from the MakeMove(). >> Same procedure goes for >>the HashKey (which BTW need 4 lookups if you capture a piece or castle), so its >>really 5 variables that benefit, if you add a piecesquare its 6 variable updates >>that have become 2-3 times faster, not bad - but 14 megs!? >> >>-S. > >The thing I found was that the cache issue was _the_ problem, along with >the small memory pipe on the PCs... That is why I went to the scheme I now >use, to avoid the memory references when possible so that cache doesn't get >destroyed so badly... Okay, so wouldn't you agree, that 1 memory reference to a large table should be faster than 10 references to 4 minor tables (not even counting a piece square table), unless you somehow know that the small tables are in the cache? It's not "just" fewer operations, it's also fewer references :) -S.
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.