Re: My failed attempt to change TCEC NN clone rules
Posted: Sun Sep 15, 2019 11:31 pm
I’ve been through the Allie code and the Scorpio code (and the lc0 code, god help us). They all use essentially the same A0 network types, as that is dictated by the PUCT search algorithm. Scorpio and Allie both use a somewhat different search from lc0 and a0, with different backup strategies and various enhancements over the original a0 pseudo code. The lc0 CUDA code that Allie uses (and credits) isn’t particularly innovative although it is technically challenging, especially for someone unfamiliar with GPU programming. Allie would be well served to swap out the lc0 code for a TensorRT INT8 implementation.crem wrote: ↑Sun Sep 15, 2019 10:52 pm
Oh yeah, if we stick to "2 of 3" rule, I agree that Lc0's NN is surely not "100% unique" relatively to A0 net, it is either a clone or close to being a clone (surely in early Leela it was a clone). Or at least it should bring a strong notion of "not-uniqueness" to either engine or NN part of "2 of 3" rule.
Given that most of NN-based attempts mostly reimplement DeepMind's A0 (although probably Stoofvlees is an exception), where to draw the line between "unique" and "non-unique" is highly opinion-dependent..
For me,
- If an engine implemented NN from a0 papers and intends to move it away from initial architecture as engine develops, it's "unique enough" (although it's already a shaky ground, it's more like an exception only because everyone implements the same thing from a0 paper).
- If an engine took a code from another engine and intends to follow changes by syncing, it is not "unique".
The line is somewhere in the middle, and it's probably not possible to define it in TCEC rules.