Re: Stockfish version with hash saving capability
Posted: Wed Oct 11, 2017 3:39 pm
Interesting timing!
I was just getting ready to post something about this as well.
I had noticed the same thing, but wasn't sure if I was doing something wrong (although I found that unlikely, since the exact same steps worked with smaller hash sizes).
With hash 1024 MB, single thread, initial position, first search (all searches are "go infinite") took 111 seconds to complete iteration 30.
Same settings, just a "stop" and "go infinite" immediately afterwards to see what it's like with the hash populated from the previous search, 29 seconds.
Much faster, as expected.
Now saving the hash, closing and reopening the engine, loading the hash, and the search took 79 second to complete iteration 30.
That number is even a bit misleading, because it got a bit unlucky and spent almost all of its time resolving 3 consecutive fail highs/fail lows on iteration 30.
It completed iteration 29 nearly instantly (took around 80-90 seconds with an empty hash).
So, the save/load hash worked as expected for a 1024 MB hash.
Now, times for the same setup with the only change being a 2048 MB hash.
I'll just give the times and skip the description of each run:
91 seconds
21 seconds
91 seconds
This has been consistent across all the runs I've tried in different positions.
The loaded hash just seems not to provide any benefit at all when >=2 GB.
At the moment the scenario's a bit funny, because asmFish's save/load works with the larger hash sizes, but it also doesn't have the changed hash replacement for infinite analysis (or if it does, it doesn't seem to work as well, as I can't get it to retain found values for lines in forwards-backwards nearly as consistently as I can with Daniel Jose's nice version) , so I get to pick one or the other feature for now
Hopefully the issue is not so difficult to fix; I really appreciate all the work that's gone into this!
I was just getting ready to post something about this as well.
I had noticed the same thing, but wasn't sure if I was doing something wrong (although I found that unlikely, since the exact same steps worked with smaller hash sizes).
With hash 1024 MB, single thread, initial position, first search (all searches are "go infinite") took 111 seconds to complete iteration 30.
Same settings, just a "stop" and "go infinite" immediately afterwards to see what it's like with the hash populated from the previous search, 29 seconds.
Much faster, as expected.
Now saving the hash, closing and reopening the engine, loading the hash, and the search took 79 second to complete iteration 30.
That number is even a bit misleading, because it got a bit unlucky and spent almost all of its time resolving 3 consecutive fail highs/fail lows on iteration 30.
It completed iteration 29 nearly instantly (took around 80-90 seconds with an empty hash).
So, the save/load hash worked as expected for a 1024 MB hash.
Now, times for the same setup with the only change being a 2048 MB hash.
I'll just give the times and skip the description of each run:
91 seconds
21 seconds
91 seconds
This has been consistent across all the runs I've tried in different positions.
The loaded hash just seems not to provide any benefit at all when >=2 GB.
At the moment the scenario's a bit funny, because asmFish's save/load works with the larger hash sizes, but it also doesn't have the changed hash replacement for infinite analysis (or if it does, it doesn't seem to work as well, as I can't get it to retain found values for lines in forwards-backwards nearly as consistently as I can with Daniel Jose's nice version) , so I get to pick one or the other feature for now
Hopefully the issue is not so difficult to fix; I really appreciate all the work that's gone into this!