Author: Robert Hyatt
Date: 22:16:04 12/06/01
Go up one level in this thread
On December 06, 2001 at 20:39:30, Dan Newman wrote: >On December 06, 2001 at 10:49:48, Robert Hyatt wrote: > >>On December 06, 2001 at 04:57:03, David Rasmussen wrote: >> >>>On December 06, 2001 at 00:20:24, Robert Hyatt wrote: >>> >>>>I ran the test and you are absolutely correct. 32 bit pawn hash keys >>>>are not usable. I am not sure when I went to this, but I did look back >>>>thru my test results in my file at the office, and the last time I did any >>>>hash sanity testing was when I did use 64 bits. Since I made the change to >>>>32 I apparently didn't test well enough. >>>> >>>>It is a trivial change to fix, and Crafty is now back to 64 bit signatures. >>>> >>>>Glad you took the time to test and kept the idea "alive". You were >>>>certainly correct about the number of collisions... and it has to be >>>>unacceptable. >>> >>>Thanks! Finally... I was beginning to think I was insane or that my computer had >>>faulty RAM or something :) >>> >>>We agree then. Do you think 48 bits could do it? Probably. But it's not worth >>>the effort, now that you (and I) already have a 64-bit type. The PawnHashTable >>>doesn't need to be "big" anyway. >>> >>>You are saying that Bruce uses 32-bit keys. Is this true? He has the problem >>>too, then. >>> >>>/David >> >> >>I am not sure. I _think_ he said he was using three 32 bit hash values. One >>to store in the real hash table, one to index the real hash table, and one >>(pawns only) for pawn hashing. But I might well have not remembered correctly >>here. My only question right now is how I chose to go to 32 bits without >>checking it properly. It shows up too easily. Which suggests that I simply >>"did it" after someone reported that it worked for them. And that is not >>something I usually do. >> >>Which leaves a mystery. why would I go to 32 bits without testing? Or did I >>simply use a broken test? >> >>No idea... > >Just to throw some more confusion into this discusion, I decided to run >the 32-bit test on my program (Shrike). I currently use a 32-bit key and >a separate (usually 18-bit) index for an effective hash code of 50 bits. >I didn't get collisions with 50 bits--though my tests have only run a few >minutes. When I trimed the key down to 14 bits for an effective hash code >of 32-bits I got 62 collisions out of 66 million probes, which seems quite >a bit lower than the 300 out of 10,000 figure quoted elsewhere... > >I think that rate might still be unacceptable because it tended to produce >a few large bursts (less than a second in duration) which might increase >the probablility of a misevaluation changing the selected root move (just >an intuition). None of the results for the test suite I was doing this on >changed though. > >I suspect, if you are getting a really high collision rate, that there >might well be something rotten in the "random" number table... > >-Dan. my numbers seem to match yours. IE 2-4 secs on my laptop is about 1M nodes or so. Some positions made this climb, some made it go down a bit. I didn't try WAC, I annotated some games that went all the way to 3 piece endings (KR vs K and KQ vs K) to see the spread on the number of bad pawn hashes. Didn't fail once with 64, but failed badly with 32. However, a tree with 1M nodes is amazingly robust and seems capable of surviving such a random spike in the evaluation with little in the way of bad side-effects. Amazing... But when I introduce a small bug, it all goes to hell instantly. :)
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.