Bug hunting or How many bits is enough?
Posted: 12 Jun 2008, 22:51
The last public release of my program RomiChess (p3k) has been barraged by so many inexplicable losses that I have gone on a bug hunt to try to find out why.
Only the high 32 bits of the hash signiture was being stored in the hash record. This seemed enough as storing the full 64 bits made no difference in performance.
So as an experiment I just added another 32 bits that is just used as the key and am storing the full original 64 bit signature/key as just the signature.
Only 50 games have been played, However, this is the best result for those 50 games that I have ever had.
Now I am wondering, how many good ideas tested bad, because they stumbled into more games that had hash errors.
And I am wondering just how many bits are really enough. Or maybe my hash value generation, for only 64 bits, is not good.
Also, now that I am using 96 bits, can I just use the hash move with out verification that the move exist and that it is legal. This could mean a big increase in node rate. Especially if it is extended to the qsearch().
Only the high 32 bits of the hash signiture was being stored in the hash record. This seemed enough as storing the full 64 bits made no difference in performance.
So as an experiment I just added another 32 bits that is just used as the key and am storing the full original 64 bit signature/key as just the signature.
Only 50 games have been played, However, this is the best result for those 50 games that I have ever had.
Now I am wondering, how many good ideas tested bad, because they stumbled into more games that had hash errors.
And I am wondering just how many bits are really enough. Or maybe my hash value generation, for only 64 bits, is not good.
Also, now that I am using 96 bits, can I just use the hash move with out verification that the move exist and that it is legal. This could mean a big increase in node rate. Especially if it is extended to the qsearch().