Author: Dieter Buerssner
Date: 12:42:36 12/29/02
Go up one level in this thread
On December 29, 2002 at 06:05:33, Gerd Isenberg wrote:
>On December 28, 2002 at 18:46:59, Dieter Buerssner wrote:
>
>>On December 28, 2002 at 18:43:33, Dieter Buerssner wrote:
>>
>>>Gerd, do you have one such table or 2? It sounds to me, as you only had one.
>>
>>Ahh, I guess, you hash side to move ...
Hi Gerd,
>Yes, but that doesn't matter much?!
No. I was confused, and my first comment doesn't make too much sense.
I thought something with your numbers was not correct. And when not hashing side
to move, and having only one table, one would of course suspect many wrong hits.
BTW. I am using the scheme with 2 tables of 1024 entries.
>Due to the leading condition, repetition hash probes only occur, if at least
>four reversible moves are done i a row. Most often tryRepCount is less than
>5-10% of total nodecount, in fine70 ~40%.
>
could_try_rep++;
> if ( Count50 + 4 <= GameCount ) {
> tryRepCount++;
> if ( RepetitionHash[RepeHashIdx()] > 1 ) {
> mayRepCount++;
> if ( Repetition() > 0 ) // iterate over move list
> RealRepCount++;
>
>I played a bit around with the size of RepetitionHash and the Hashing function.
>Considering the side to move in RepeHashIdx() has only negligible effect.
>But if i switch Nullmove off, the collision rate becomes dramatically better
>(more than factor 10). Also if i skip the leading conditions of course ;-)
>
>With a size of 4KByte (12bit index) i have about 80-90% collisions, RealRepCount
>is only 10-20% of mayRepCount. With a size of 8KByte i have about 60-70%
>collisions, with 16KByte (14bit index) less than 50%.
>
>Surprisingly the 4KByte table seems to be the fastest in average (i guess due to
>cache effects, i still have slow SDRAM), but only tried with some testpositions.
>The ratio mayRepCount/tryRepCount is even < 10% here. May be 16KByte is
>favorable (for real games), as suggested in Kervinck's Master's Thesis.
I get actually similar ratios. Additionally, in positions I tried, I allways got
mayRepCount/could_try_rep < 1% (0.7% in Fine 70 to depth 40, otherwise
considerably smaller). In the later position, RealRepCount/MayRepCount was 50%.
In the start position, after 10M nodes, I have 738 calls to the repetion
function. Only 42 of those are actual repetitions.
In a profile run of test positions (which really is not so suited here), the
real reptition function used 0.02% of the run time (so just noise level). I have
done profile runs of real games, but deleted the results (or at least can't find
them at the moment) If the "real" repetition function would have used something
close to 1% of the runtime, I should have recognized it.
Of course, it is difficult to judge, what the additional cache footprint of the
table hurts.
Cheers,
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.