Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Result of Hash Table

Author: Stuart Cracraft

Date: 16:24:50 01/20/98

Go up one level in this thread


On January 20, 1998 at 18:38:53, Robert Hyatt wrote:

>On January 20, 1998 at 16:02:27, Stuart Cracraft wrote:
>
>>On January 20, 1998 at 15:22:51, Robert Hyatt wrote:
>>
>>>On January 20, 1998 at 14:10:49, Stuart Cracraft wrote:
>>>
>>>>An error was discovered in the search/quiescence calling.
>>>>
>>>>The call to  the quiescence search was made
>>>>after the probe to the hash table, instead of before.
>>>>When this was moved to before the probe to the hash
>>>>table, the probe success rate jumped up to the kinds
>>>>of levels we're talking about here.
>>>>
>>>>The speed of the program jumped up 20% from 25,000 nps
>>>>to 30,000 nps on the same test suite and the hashing
>>>>success rate increased significantly from 14% to 40%
>>>>for the suite.
>>>>
>>>>--Stuart
>>>
>>>Your "bug" was correct.  You *always* probe before doing anything
>>>else.  That's the point.  What you did was make the current position
>>>probe fail by deferring it, so that a deeper position probe would
>>>succeed. You bumped up your probe hit rate, but check out your nodes
>>>to reach a specific depth.
>>>
>>>The probe should be the first thing you do.  Then the null-move
>>>search.  Then the regular search.
>>
>>Okay to test your hunch, I did a 6-ply search of the first 20 positions
>>from Win-at-Chess (unless it is a checkmate, which returns when found).
>>
>>In my old way:
>>
>>	search(alpha,beta,depth,etc.)
>>	  :
>>	  :
>>	Do transposition table probe
>>	if (depth <= 0) quiescence(alpha,beta,etc.)
>>
>>With the above this is the search result for the 20 positions:
>>
>>Time = 51.7 Rate=24332 Nodes=[927630/329326/1256956]
>>EvalCnt=289750 RptCnt=276 NullCut=49186
>>Extensions: Check=45027 Recapture=23718 Pawn=350 PassedPawn=0
>>            OneMove=0 Threat=0 DeepSearch=0 Mate=0
>>Hash: Success=10% Collision=16%
>>Pawn Hash: Success=93% Collision=5%
>>
>>The new way:
>>
>>	search(alpha,beta,depth,etc.)
>>	  :
>>	  :
>>	if (depth <= 0) quiescence(alpha,beta,etc.)
>>	Do transposition table probe
>>
>>With the new way, these are the results:
>>
>>Time = 46.0 Rate=27392 Nodes=[930731/329941/1260672]
>>EvalCnt=293997 RptCnt=271 NullCut=48967
>>Extensions: Check=45281 Recapture=23840 Pawn=360 PassedPawn=0
>>            OneMove=0 Threat=0 DeepSearch=0 Mate=0
>>Hash: Success=31% Collision=16%
>>Pawn Hash: Success=93% Collision=5%
>>
>>So for the cost of searching 10,000 more nodes (but at a higher rate),
>>I got a 10% improvement in total time with the new way. Am I missing
>>something? I still like the new way, even with more nodes.
>>
>>--Stuart
>
>
>try more positions, to much deeper depths.  this is going to explode
>like nobody's business...

I tried the first 20 positions from Win-at-Chess at 8 ply each:

old way (quiescence called after probe):

Time = 531.5 Rate=21273 Nodes=[8270777/3034851/11305628]
EvalCnt=3853626 RptCnt=4195 NullCut=529066
Extensions: Check=435566 Recapture=161805 Pawn=11924 PassedPawn=0
            OneMove=0 Threat=0 DeepSearch=0 Mate=0
Hash: Success=9% Collision=45%
Pawn Hash: Success=95% Collision=35%

new way (quiescence called before probe):

Time = 429.1 Rate=25883 Nodes=[8217728/2888300/11106028]
EvalCnt=3670469 RptCnt=3976 NullCut=502190
Extensions: Check=421209 Recapture=159789 Pawn=11369 PassedPawn=0
            OneMove=0 Threat=0 DeepSearch=0 Mate=0
Hash: Success=28% Collision=43%
Pawn Hash: Success=95% Collision=34%

Looks very close, within 2%. 11,305,628 nodes vs. 11,106,028 nodes.

I could bump it again to 9 ply but am hitting the limits of my hardware.
I trust your assessment but believe it may only affect at very deep
depths
or long searches and on very fast hardware.

For my search, the presence of quiescence before table probe appears
advantageous.

--Stuart




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.