Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: For Bruce or anyone else who might know what he means...

Author: Ren Wu

Date: 18:01:16 11/20/01

Go up one level in this thread


On November 20, 2001 at 20:46:07, Scott Gasch wrote:

>
>As Bruce pointed during CCT3, move tables can be used for other things than just
>moves.  For example, if you use PSQT at all, it might be useful to have the
>delta PSQT for [KING][A8][A7] handy in MakeMove.  Likewise the delta hash key
>value.
>
>The former saves work in eval if your tree is not very very long.  That is,
>assume you have 16 pieces average on the board at each leaf node in the tree.
>Then you have a total of leaf_node_count * 16 PSQT lookups.  If you do it
>incrementally at MakeMove you have edge_count * 1 PSQT lookups.
>
>The latter saves you one 64 bit xor operation per move.  That is, instead of
>doing:
>
>   pos->i64Sig ^= i64Key[KING][A8];  // lift the king
>   pos->pSquare[A8] = EMPTY;
>   pos->i64Sig ^= i64Key[KING][A7];  // place the king
>   pos->pSquare[A7] = KING;
>
>you can do:
>
>   pos->i64Sig ^= g_sMoveGen[KING][A8][A7].i64HashDelta;
>   pos->pSquare[A8] = EMPTY;

Thanks for this info. I know bruce using this approach, and i know he had
extended it somehow, but I don't know any of the details, until today.

But still, the price is pretty high. The orignal one only need one byte per
entry. If we want to keep hash/psqt inside this table, we have to make it 8-10
times bigger, this will have bad impact on cache etc. So i am not sure if this
is the right way to do in current hardware.

Ren.



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.