Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Squashing Hash Table Bugs

Author: James Swafford

Date: 19:50:44 05/29/04

Go up one level in this thread


On May 29, 2004 at 22:21:55, Robert Hyatt wrote:

>On May 29, 2004 at 22:01:23, James Swafford wrote:
>
>>On May 29, 2004 at 21:23:28, Robert Hyatt wrote:
>>
>>>On May 29, 2004 at 11:10:47, James Swafford wrote:
>>>
>>>>In a recent post, Tord suggested setting a flag in
>>>>the search when the hash table suggests a fail high, and
>>>>testing whether the search would indeed fail high.
>>>>
>>>>The idea seems so simple I'm embarassed I haven't thought
>>>>of it before. :)
>>>>
>>>>I've been 'pretty sure' for a long time that I've got some
>>>>nasty hash bugs.  I'm in the mood to exterminate them.
>>>>
>>>>Last night I implemented Tord's idea and, to my dismay
>>>>(but not to my surprise) my hash table is saying 'fail
>>>>high' when the search wouldn't have failed high.  And-
>>>>it doesn't take very long. :)
>>>
>>>This is _not_ necessarily a bug.
>>>
>>>Your hash table entry can have a draft > depth, while the real search you will
>>>do will only go to depth.  A deeper search might say fail high while a shallower
>>>search fails low.
>>>
>>>That test is no good...
>>>
>>
>>That was suggested below, so I modifed the test to only set
>>the 'hash_says_fh' flag if the hash depth == current search depth,
>>and disabled null move, extensions, other hash table cutoffs,
>>etc.
>>
>>On move 41 of WAC, it happened again.  I've not even
>>begun to hunt it down (maybe just a collision?), but
>>I will.
>>
>
>Again, that will _not_ work.  You still probe the table below the point where
>you decide to do a search to see if the table result is correct.  And down into
>the tree there you can get different results again.
>

I don't understand what you're saying.  I probe the table towards
the top of my search (only time check comes before that).

I'm not allowing _any_ cutoffs during this test.  No fail highs,
no fail lows, no exact scores.  I'm simply recording that the
hash table says I _should_ fail high, and I only do that IF the
depth recorded in the table is exactly the same as 'depth' in the
search.

>You simply can not test the hashing that way.  Unless you restrict _all_ hash
>probes to only match on exact depth as well...  By "all" I mean _all_ and not
>just the probes where you are going to validate them by a search...

I just disabled the other hash probes.

Do you still think the test is flawed?


>
>
>
>
>
>>--
>>James
>>
>>
>>
>>>
>>>>
>>>>This seems like a nasty thing to debug.  I'm comtemplating
>>>>how I might go about it.  I'm hoping some of you can
>>>>provide some suggestions...
>>>>
>>>>--
>>>>James



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.