Releases: Joachim26/StockfishNPS
Update 24/01/19: Source codes of all future engine series with nps features were rebased and somewhat renewed. For example SFM is stopped and replaced by SFNNv6 (larger v6 net and stronger). For now only 3 MC_armv8 builds are published. Details and Win modern builds soon.
Dev builds of SFnps, SFMnps, and SFSnps with 38 to 62 MB, 45 MB, and 12 MB net, respectively.
The ManComp_Versions are compiled on Termux with gcc and are significantly faster than the automatically compiled builds, but updated only from time to time.
The 12 MB net for SFSnps can be downloaded here:
https://tests.stockfishchess.org/api/nn/nn-8366015ec235.nnue
Compressed nets (6.3 MB) for SFS256nps are:
https://tests.stockfishchess.org/api/nn/nn-9067e33176e8.nnue or
https://tests.stockfishchess.org/api/nn/nn-ecb35f70ff2a.nnue
"S256" means engine uses compressed nets with L1=256 i.e. the same net architecture as the old (but uncompressed) net of SFSnps. Tests SFS16nps against new SFS256nps on Android are finished and are presented here.
In future probably more such L1=256 nets made by Linrock or others (for the dual net Stockfish) will be released.
SFS128nps with Linrock's first L1-128 net has this net embedded. Speed is nearly on classical Stockfish level. Will soon test the two engines h2h since I'm quite curious which is stronger on Android/my phone. Edit: I have already made some tests but stopped them since SF11 is way too weak. Instead I will now make tours against old SFS. Edit2: Results were added here.
I think that this L1-128 net was still trained on normal positions and not already on very unbalanced positions (which is probably preferable when trained for SFDualNet).
The last SFNNv5 45 MB (medium size) net for SFMnps can be found here:
https://tests.stockfishchess.org/api/nn/nn-e1fb1ade4432.nnue
The compressed 38 to 62 MB SFNNv6/7/8 nets for SFnps are somewhere here:
https://tests.stockfishchess.org/nns
Note: If engine doesn't start just look in the settings which net is needed.
And for SFDNnps (Dual Net) the two compressed nets, a big and a small one, can be downloaded at
https://tests.stockfishchess.org/api/nn/nn-0000000000a0.nnue and
https://tests.stockfishchess.org/api/nn/nn-ecb35f70ff2a.nnue .
Original (draft) pull request and discussion (with links to first fishtests): official-stockfish#4898
To have all interesting and fast manually compiled builds in one place SFplusNPS builds are now also added to the already very long download list 😁. Intro on SFplusNPS, it already uses the last SFNNv5 net and will be further updated in future (always, when there are no other more interesting builds to build 😉 as in the moment with SFS256/128nps and SFDNnps).
Tournaments at 10+0.1s, 30+0.3s, and 100+1s with the three StockfishNPS versions (12 MB, 45 MB, and 67 MB nets):
Rank Name Elo +/- Games Points Score Draw TC
1 SFMnps230531_modern 33 15 1000 547.5 54.8% 51.7% 10+0.1
2 SFSnps230531_modern -16 15 1000 477.5 47.8% 49.5% 10+0.1
3 SFnps230531_modern -17 15 1000 475.0 47.5% 49.0% 10+0.1
1500 of 1500 games finished.
Rank Name Elo +/- Games Points Score Draw TC
1 SFMnps230531_modern 31 25 332 181.0 54.5% 55.4% 30+0.3
2 SFnps230531_modern 2 24 334 168.0 50.3% 58.1% 30+0.3
3 SFSnps230531_modern -33 25 334 151.0 45.2% 53.9% 30+0.3
500 of 1500 games finished.
Rank Name Elo +/- Games Points Score Draw TC
1 SFMnps230531_modern 26 36 132 71.0 53.8% 63.6% 100+1
2 SFnps230531_modern 23 36 134 71.5 53.4% 63.4% 100+1
3 SFSnps230531_modern -50 36 134 57.5 42.9% 61.9% 100+1
200 of 300 games finished.
Note: The above tournaments were performed before the speed of (Win)-SFnps was significantly increased by Use block sparse input....
Since this patch does not support NEON, and Android is the main target of this fork, these older Windows tournaments better simulate the situation under Android than newer tests with the faster standard SFnps. Here is one new tournament (23/06/22) with patched SFnps:
Rank Name Elo +/- Games Points Score Draw TC
1 SFnps_modern 14 16 1000 520.0 52.0% 47.6% 5+0.05
2 SFMnps_modern -6 16 1000 492.0 49.2% 46.6% 5+0.05
3 SFSnps_modern -8 16 1000 488.0 48.8% 46.0% 5+0.05
1500 of 1500 games finished.
A real game changer under Windows/Linux this patch Use block sparse input... by AndrovT!
However, as long as there is no NEON support, SFMnps, and even SFSnps at short TCs, are strong competitors for SFnps on Android.
Edit 230802:
AndrovT has now (23/08/02) ported his patch to Android. Speedup for manually (with GCC pgo) compiled SFnps on my phone (SD662, Cortex-A73) is 7.34%.
Three short matches (SD 662, CfA 6.2.1, one thread) with (unpatched) SFMXnps230801_ManComp_armv8 and (patched) SFnps230802_ManComp_armv8 were performed:
SFMX : SFnps Elo TC
61.0 : 39.0 +78 fast
26.0 : 24.0 +14 1s/move
25.0 : 25.0 +0 30+1s
So SFMXnps is also after the new neon patch still quite competitive... and longer TCs are quite hard for the battery 😉
Edit 230815:
I found a solution for the battery problem 😉, new Android tournaments and SFMX downloads can now be found here:
https://github.com/Joachim26/StockfishNPS/releases/tag/Master_DroidSFnps-64937b72
Android and Windows binaries
Various compilers (GCC, Clang, NDK) and compiler settings (w/o PGO) were used in Termux.
Note: SFnpsndkv7_220608 should work on most armv7 devices, SFnpsclangpgo_v7_220608 works fine on armv8 devices and may work also on some armv7 devices. It will work on an Amazon FireHD 8 (gen 10) in Droidfish, since it was compiled on such an armv8l tablet, while all other builds were compiled on an usual armv8 smartphone.
The Windows binary (SSE4.1 + popcnt) was compiled with Visual Studio and the integrated Clang v14 Compiler.