Skip to content

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.

18 Dec 14:56
309cb2c
Compare
Choose a tag to compare

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

08 Jun 17:58
8a3aaa6
Compare
Choose a tag to compare

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.