Author: Dieter Buerssner
Date: 14:04:44 08/19/03
Go up one level in this thread
On August 19, 2003 at 16:52:43, Sune Fischer wrote: >If you swear this is faster, I will take your word for it, but off hand I don't >see why it should be the case. >You still need to plow through every single hash entry, with latency and all >that comes with it. Streaming is faster than random access, but why is clearing >one bit faster than memsetting the whole thing? >Clearing one bit is actually more complicated, requiring loops (with >conditionals) and logic, unless of course you have very big entries. First I thought: don't clear the bits. With every new search, toggle the "current_age_bit". Add little logic to Probe/Store functions (it should not decrease efficiency much, because we need a slow memory look-up anyway), that just assumes the entry is empty, when the bit does not fit. But at second thought, this would not really help. Because the new search might not touch one entry, and the second new search would assume, that the entry is current. So, there is again an influence of the history of the game due to TTs, something that Johan wanted to avoid from the start. Another approach would be, to have the age bits in one seperate small table. Assuming you have 64 Mb hash, with 16 bytes each entry, this would be 4 million bits, or 1/2 Mb of RAM. Something that probably would stay in second level cache most of the time on a modern computer. Clearing would use practically no time, but accessing the second table would mean some overhead. Regards, Dieter
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.