crafty pv hash request

Discussion of chess software programming and technical issues.

Moderator: Ras

jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

crafty pv hash request

Post by jwes »

I have been trying crafty 23.4 and I appreciate the better PVs. I found one situation where I occasionally get shortened PVs. It is doing reverse analysis. I analyze down a line and start backing up moves and sometimes the PV is 1 or 2 plies long. I believe a simple fix for this would be if a hash hit would cause an exact cutoff and the cached pv is either truncated or not there, don't cut off. This would be extremely rare in normal game play, so I doubt the cost would be measurable.

I also noticed that you changed the age field to use the 6 unused bits in the tt. Did this fix some problem?
jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

Re: crafty pv hash request

Post by jwes »

Bump
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: crafty pv hash request

Post by bob »

jwes wrote:I have been trying crafty 23.4 and I appreciate the better PVs. I found one situation where I occasionally get shortened PVs. It is doing reverse analysis. I analyze down a line and start backing up moves and sometimes the PV is 1 or 2 plies long. I believe a simple fix for this would be if a hash hit would cause an exact cutoff and the cached pv is either truncated or not there, don't cut off. This would be extremely rare in normal game play, so I doubt the cost would be measurable.

I also noticed that you changed the age field to use the 6 unused bits in the tt. Did this fix some problem?
I'm drawing a blank for the reason I did that, but there was a reason. I believe that part of the issue is that if you do a search and only have a 1 or 2 bit age counter, things would not remain in the PV hash long enough. And this is still a problem I am thinking about.

For example, I do a search, dump the PV, etc, which is also saved in the PV hash table. Then I start to ponder, and now the age is updated and I will overwrite old entries before I overwrite current ones. And that can cause me to lose the old PV info, while still having the corresponding normal hash entry survive since a path hash entry is 16x bigger than a normal hash entry. I lose the path, keep the hash entry, and _still_ can see a short PV as a result.

Still thinking...