New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support different Net Architecture #3670
Comments
No, this is false. The NnueVersion is vague, and because "hashes" are used to identify the parts of the network we can only reliably provide validation. This could be resolved with official-stockfish/nnue-pytorch#140. There are, however, a number of implementation issues that are not related to the way the nets are stored:
I don't think this is a good direction. People who experiment with different architectures can still do so by modifying the source code. |
our master branch just supports one net version, by design. Users should in general just use the embedded net. Developers can change the code as needed. As architectures evolve it is quite hard to maintain compatibility. |
In order to give network developers more opportunities to experiment and to support networks with different architectures, the NnueVersion should not be defined as a fixed value in nnue.c, but should be determined dynamically via the function readu_le_u32(d), see the function verify_net().
The function verify_net() itself will then be obsolete.
Depending on NnueVersion, the network parameters, e.g. kHalfDimensions, can be determined.
The easiest way to do this code extension is when the the code is prepared for a new network architecture.
The text was updated successfully, but these errors were encountered: