```
make net
```
will download the default net as specified in ucioption.cpp file.
This target assumes that `curl` or `wget` is available (in addition to grep and sed).
Needs some testing on different systems (windows, mac, etc.) to see if the implementation is portable enough.
Note that this is not part executed as part of a `make build` to make sure that a build doesn't need a network connection.
this revisits the initialization of NNUE, basically only changing
the state on the UCI options 'Use NNUE' and 'EvalFile' calling init_NNUE(),
which sets the Eval::useNNUE variable, and loads the network if needed
(i.e. useNNUE is true and the same network is not yet loaded)
init_NNUE is silent (i.e. no info strings), so that it can be called at startup
without confusing certain GUIs.
An error message on wrong setting when asking for (i.e. the net failed to load),
is delayed to the point where everything must be consistent (start of search or eval).
The engine will stop if the settings are wrong at that point.
Also works if the default value of Use NNUE would become true.
Mostly restores the previous README.md with some info and new UCI options, retaining only the info needed for the player.
The valuable training documentation is best preserved elsewhere.
Comments / fixes welcome.
Don't copy NNUE parts of StateInfo when not needed in do_null_move().
Measurement vs master at STC shows only ~3 Elo regression when NNUE
is not used, was ~5 Elo before.
https://tests.stockfishchess.org/tests/view/5f23a9052f7e63962b99f51b
ELO: -3.02 +-1.7 (95%) LOS: 0.0%
Total: 60000 W: 11145 L: 11666 D: 37189
Ptnml(0-2): 1018, 6945, 14494, 6626, 917
No functional change.
For some systems std::aligned_alloc is not available even if c++17 is specified.
Wrap the function and use specific solutions.
Update macosx-version-min to the required minimum.
No functional change.
update CMakeList.txt to add required C++ standard version.
Fix signature.
the code is up-to-date with master d89730d5c8 adjust signature
Bench: 4578298