]> git.sesse.net Git - stockfish/commitdiff
Update default net to nn-a3d1bfca1672.nnue
authorDaniel Monroe <39802758+Ergodice@users.noreply.github.com>
Fri, 23 Jun 2023 22:36:27 +0000 (18:36 -0400)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sat, 1 Jul 2023 10:59:28 +0000 (12:59 +0200)
faster permutation of master net weights

Activation data taken from https://drive.google.com/drive/folders/1Ec9YuuRx4N03GPnVPoQOW70eucOKngQe?usp=sharing
Permutation found using https://github.com/Ergodice/nnue-pytorch/blob/836387a0e5e690431d404158c46648710f13904d/ftperm.py
See also https://github.com/glinscott/nnue-pytorch/pull/254

The algorithm greedily selects 2- and 3-cycles that can be permuted to increase the number of runs of zeroes. The percent of zero runs from the master net increased from 68.46 to 70.11 from 2-cycles and only increased to 70.32 when considering 3-cycles. Interestingly, allowing both halves of L1 to intermix when creating zero runs can give another 0.5% zero-run density increase with this method.

Measured speedup:

```
CPU: 16 x AMD Ryzen 9 3950X 16-Core Processor
Result of 50 runs

base (./stockfish.master ) = 1561556 +/- 5439
test (./stockfish.patch ) = 1575788 +/- 5427
diff = +14231 +/- 2636

speedup = +0.0091
P(speedup > 0) = 1.0000
```

closes https://github.com/official-stockfish/Stockfish/pull/4640

No functional change

AUTHORS
src/evaluate.h

diff --git a/AUTHORS b/AUTHORS
index ff224954707197ba589981a606486f6eb95a0acb..2e9ae7805fd553bd0b7a4a5adb3b1b314fb6c343 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -48,6 +48,7 @@ clefrks
 Dale Weiler (graphitemaster)
 Daniel Axtens (daxtens)
 Daniel Dugovic (ddugovic)
+Daniel Monroe (Ergodice)
 Dan Schmidt (dfannius)
 Dariusz Orzechowski (dorzechowski)
 David (dav1312)
index b9d7231d1e1694073d5a82cff588516e2c068e1f..c3321965d52c5e975f8f6311046347044558e437 100644 (file)
@@ -39,7 +39,7 @@ namespace Eval {
   // The default net name MUST follow the format nn-[SHA256 first 12 digits].nnue
   // for the build process (profile-build and fishtest) to work. Do not change the
   // name of the macro, as it is used in the Makefile.
-  #define EvalFileDefaultName   "nn-5af11540bbfe.nnue"
+  #define EvalFileDefaultName   "nn-a3d1bfca1672.nnue"
 
   namespace NNUE {