mmt wrote: ↑Tue Jan 28, 2020 1:28 am
koedem wrote: ↑Sun Jan 26, 2020 9:07 pm
If you're looking to run very long searches, the standard Leela binary will not be very useful since AFAIK they haven't changed the data type of their Q. (at least last time I checked Q was a float which means that for long searches (> 100MN) the eval and with it the search will become stuck due to rounding errors essentially)
For such long searches I still use a relatively old forked version that changes Q to be a double.
From reading the GitHub issue, the problem appears to for nodes visited more than 8 million times - they stop updating. Some people there don't think it's big deal and a patch hasn't been accepted. I don't understand why they insist on testing it by playing matches vs. unpatched version, seems very inefficient. I could try building a version with the patch.
My fork with this change should still work though it is somewhat outdated
https://github.com/koedem/lc0
(kudos to MelleKoning for implementing it)
It is not quite as clear cut with 8 million nodes, though around that time "strange" things can start to happen. I don't recall the details but the eval update should be roughly like newEval = oldEval * (oldNodes / (oldNodes + 1)) + Q_of_evaluated_node) / (oldNodes + 1). (so that the eval stays the average of all visited nodes' Qs)
As oldNodes gets in the range of a floats mantissa size the left summand will eventually just be oldEval whereas the right summand will eventually be small enough that adding it doesn't change the eval. (as said, I don't recall how the details were, may be somewhat different formula, but something like that is happening)
Changing Q to be a double is only a 2% or so increase of a nodes size and for long analyses it is kinda necessary but their point I guess is that it doesn't affect match play very much since you rarely hit those node counts there... (I disagree with that sentiment, the main usage of an engine is analysis not match play though considering I wrote 0 lines of code for Leela I am not really in a position to put up demands

)