Fabian Fichter [Sun, 12 Sep 2021 15:04:01 +0000]
Bump pyffish version
Ada Joule [Sun, 12 Sep 2021 12:15:15 +0000]
Ignore countStarted when either side has only one piece
Fabian Fichter [Fri, 10 Sep 2021 18:59:57 +0000]
Restore development version
Fabian Fichter [Fri, 10 Sep 2021 14:49:27 +0000]
Fairy-Stockfish 14
bench: 5903196
Fabian Fichter [Tue, 7 Sep 2021 17:09:18 +0000]
Fix insufficient material for atomic
Closes #352.
Fabian Fichter [Sat, 4 Sep 2021 21:08:24 +0000]
Fix incremental update for hand pieces
Fabian Fichter [Sat, 4 Sep 2021 16:13:44 +0000]
Bump pyffish version
Fabian Fichter [Sat, 4 Sep 2021 14:45:43 +0000]
Fix pawn evasions for cannon checks
Fabian Fichter [Sat, 4 Sep 2021 07:53:35 +0000]
Support NNUE for placement variants
Use classical evaluation during setup phase to enable NNUE usage.
Fabian Fichter [Fri, 3 Sep 2021 12:08:31 +0000]
Update readme
Fabian Fichter [Fri, 3 Sep 2021 10:16:22 +0000]
Enable NNUE pockets for gating variants
Fabian Fichter [Fri, 3 Sep 2021 07:53:04 +0000]
Simplify addition of variants
Bajusz Tamás [Wed, 1 Sep 2021 09:02:28 +0000]
Bump pyffish version (#350)
Fabian Fichter [Sun, 29 Aug 2021 09:16:53 +0000]
Generalize incremental computation for hand pieces
This allows to apply incremental NNUE computation not only to drop variants,
but also to S-Chess gating and drop variants with blast captures.
Fabian Fichter [Sat, 28 Aug 2021 12:04:44 +0000]
Support re-usage of NNUE nets for other variants
Define aliases for compatible variants, so that
they can re-use existing NNUE files without requiring
to create symlinks or copies of the evaluation files.
Fabian Fichter [Sat, 28 Aug 2021 08:42:16 +0000]
Support pieces in hand for NNUE
This enables to consider pieces in hand in NNUE evaluation.
Fabian Fichter [Fri, 30 Jul 2021 13:18:37 +0000]
Generalize NNUE architecture
Remove restrictions on board size and piece types
in order to enable NNUE for most supported variants.
This change modifies the indexing for fairy pieces,
therefore existing networks for fairy variants, currently only Makruk,
will not work properly any more and need to be replaced.
Limitations that are not addressed as part of this are:
- A "king" piece type with a constant count of 1 is required.
- Pockets are not considered.
Major Mink [Fri, 6 Aug 2021 12:08:03 +0000]
Fixed blasted pieces incorrectly updating key's castling rights
Fabian Fichter [Thu, 5 Aug 2021 14:42:54 +0000]
Prevent division by zero in extinction bonus
Fixes #340.
Bajusz Tamás [Sat, 31 Jul 2021 09:06:39 +0000]
Fix Orda Mirror promotionPieceTypes definition (#339)
Bajusz Tamás [Fri, 30 Jul 2021 15:46:33 +0000]
Add Python3.9 support to appveyor (#338)
Fabian Fichter [Thu, 29 Jul 2021 21:19:46 +0000]
Fix insufficient material handling for makpong
Closes #335.
QueensGambit [Thu, 29 Jul 2021 17:44:47 +0000]
Update ffish.js version
Bajusz Tamás [Thu, 29 Jul 2021 07:09:25 +0000]
Bump pyffish version (#334)
Fabian Fichter [Tue, 27 Jul 2021 20:15:31 +0000]
Fix variant initialization for libraries
Fabian Fichter [Sun, 25 Jul 2021 19:06:52 +0000]
Fix NNUE evaluation trace for variants
Fabian Fichter [Tue, 20 Jul 2021 18:05:05 +0000]
Fix memory leak of CECP state
Closes #331.
Fabian Fichter [Tue, 20 Jul 2021 17:16:35 +0000]
Reintroduce tempo for drop variants
crazyhouse STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1439 W: 752 L: 632 D: 55
http://www.variantfishtest.org:6543/tests/view/
60f4410abf545bb49fff86bc
crazyhouse LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 1403 W: 741 L: 621 D: 41
http://www.variantfishtest.org:6543/tests/view/
60f51db7bf545bb49fff86c6
Closes #332.
Fabian Fichter [Sun, 18 Jul 2021 14:23:30 +0000]
Merge official-stockfish/master
bench: 5903196
Fabian Fichter [Sun, 18 Jul 2021 13:56:13 +0000]
Merge official-stockfish/master
bench: 6603046
Fabian Fichter [Sun, 18 Jul 2021 13:44:41 +0000]
Merge official-stockfish/master
bench: 6215456
Fabian Fichter [Sun, 18 Jul 2021 13:37:21 +0000]
Merge official-stockfish/master
No functional change.
Fabian Fichter [Sun, 18 Jul 2021 13:30:52 +0000]
Merge official-stockfish/master
bench: 6141390
Fabian Fichter [Sun, 18 Jul 2021 13:26:37 +0000]
Merge official-stockfish/master
No functional change.
Fabian Fichter [Sun, 18 Jul 2021 11:56:42 +0000]
Merge official-stockfish/master
No functional change.
Fabian Fichter [Sun, 18 Jul 2021 11:51:44 +0000]
Merge official-stockfish/master
bench: 4890740
Fabian Fichter [Sat, 17 Jul 2021 20:18:28 +0000]
Merge official-stockfish/master
bench: 4456706
Fabian Fichter [Sat, 17 Jul 2021 20:13:34 +0000]
Merge official-stockfish/master
No functional change.
Fabian Fichter [Sat, 17 Jul 2021 20:01:22 +0000]
Merge official-stockfish/master
bench: 4590190
Fabian Fichter [Sat, 17 Jul 2021 19:44:32 +0000]
Merge official-stockfish/master
bench: 4858668
Fabian Fichter [Sat, 17 Jul 2021 19:37:39 +0000]
Merge official-stockfish/master
No functional change.
Fabian Fichter [Sat, 17 Jul 2021 19:31:06 +0000]
Merge official-stockfish/master
bench: 4838140
Fabian Fichter [Fri, 16 Jul 2021 17:19:34 +0000]
Fix NNUE index for commoners
Fabian Fichter [Fri, 16 Jul 2021 10:11:09 +0000]
Merge official-stockfish/master
bench: 4850077
Joost VandeVondele [Sat, 3 Jul 2021 07:20:06 +0000]
Restore development version
No functional change
Joost VandeVondele [Mon, 28 Jun 2021 19:46:04 +0000]
Stockfish 14
Official release version of Stockfish 14
Bench: 4770936
---
Today, we have the pleasure to announce Stockfish 14.
As usual, downloads will be freely available at https://stockfishchess.org
The engine is now significantly stronger than just a few months ago,
and wins four times more game pairs than it loses against the previous
release version [0]. Stockfish 14 is now at least 400 Elo ahead of
Stockfish 7, a top engine in 2016 [1]. During the last five years,
Stockfish has thus gained about 80 Elo per year.
Stockfish 14 evaluates positions more accurately than Stockfish 13 as
a result of two major steps forward in defining and training the
efficiently updatable neural network (NNUE) that provides the evaluation
for positions.
First, the collaboration with the Leela Chess Zero team - announced
previously [2] - has come to fruition. The LCZero team has provided a
collection of billions of positions evaluated by Leela that we have
combined with billions of positions evaluated by Stockfish to train the
NNUE net that powers Stockfish 14. The fact that we could use and combine
these datasets freely was essential for the progress made and demonstrates
the power of open source and open data [3].
Second, the architecture of the NNUE network was significantly updated:
the new network is not only larger, but more importantly, it deals better
with large material imbalances and can specialize for multiple phases of
the game [4]. A new project, kick-started by Gary Linscott and
Tomasz Sobczyk, led to a GPU accelerated net trainer written in
pytorch.[5] This tool allows for training high-quality nets in a couple
of hours.
Finally, this release features some search refinements, minor bug
fixes and additional improvements. For example, Stockfish is now about
90 Elo stronger for chess960 (Fischer random chess) at short time control.
The Stockfish project builds on a thriving community of enthusiasts
(thanks everybody!) that contribute their expertise, time, and resources
to build a free and open-source chess engine that is robust, widely
available, and very strong. We invite our chess fans to join the fishtest
testing framework and programmers to contribute to the project on
github [6].
Stay safe and enjoy chess!
The Stockfish team
[0] https://tests.stockfishchess.org/tests/view/
60dae5363beab81350aca077
[1] https://nextchessmove.com/dev-builds
[2] https://stockfishchess.org/blog/2021/stockfish-13/
[3] https://lczero.org/blog/2021/06/the-importance-of-open-data/
[4] https://github.com/official-stockfish/Stockfish/commit/
e8d64af1
[5] https://github.com/glinscott/nnue-pytorch/
[6] https://stockfishchess.org/get-involved/
Fabian Fichter [Fri, 2 Jul 2021 08:06:24 +0000]
Update js makefile
Fabian Fichter [Thu, 1 Jul 2021 22:28:57 +0000]
Merge official-stockfish/master
bench: 4835554
Fabian Fichter [Thu, 1 Jul 2021 22:20:42 +0000]
Merge official-stockfish/master
Fabian Fichter [Thu, 1 Jul 2021 22:11:00 +0000]
Merge official-stockfish/master
bench: 4806948
Fabian Fichter [Thu, 1 Jul 2021 21:58:55 +0000]
Merge official-stockfish/master
No functional change.
Fabian Fichter [Thu, 1 Jul 2021 21:42:05 +0000]
Merge official-stockfish/master
bench: 5885720
Brad Knox [Tue, 29 Jun 2021 06:40:16 +0000]
Update Top CPU Contributors
closes https://github.com/official-stockfish/Stockfish/pull/3595
No functional change
SFisGOD [Mon, 28 Jun 2021 06:58:51 +0000]
Update default net to nn-
3475407dc199.nnue
Optimization of eight subnetwork output layers of Michael's nn-
190f102a22c3.nnue using SPSA
https://tests.stockfishchess.org/tests/view/
60d5510642a522cc50282ef3
Parameters: A total of 256 net weights and 8 net biases were tuned
New best values: The raw values at the end of the tuning run were used (800k games, 5 seconds TC)
Settings: default ck value and SPSA A is 30,000 (3.75% of the total number of games)
STC:
LLR: 2.94 (-2.94,2.94) <-0.50,2.50>
Total: 29064 W: 2435 L: 2269 D: 24360
Ptnml(0-2): 72, 1857, 10505, 2029, 69
https://tests.stockfishchess.org/tests/view/
60d8ea123beab81350ac9eb6
LTC:
LLR: 2.93 (-2.94,2.94) <0.50,3.50>
Total: 61848 W: 2055 L: 1884 D: 57909
Ptnml(0-2): 18, 1708, 27310, 1861, 27
https://tests.stockfishchess.org/tests/view/
60d8f0393beab81350ac9ec6
closes https://github.com/official-stockfish/Stockfish/pull/3593
Bench: 4770936
MichaelB7 [Sun, 27 Jun 2021 15:26:09 +0000]
Make net nn-
956480d8378f.nnue the default
Trained with the pytorch trainer: https://github.com/glinscott/nnue-pytorch
python train.py i:/bin/all.binpack i:/bin/all.binpack --gpus 1 --threads 4 --num-workers 30 --batch-size 16384 --progress_bar_refresh_rate 300 --smart-fen-skipping --random-fen-skipping 3 --features=HalfKAv2^ --lambda=1.0 --max_epochs=440 --seed %random%%random% --default_root_dir exp/run_18 --resume-from-model ./pt/nn-
75980ca503c6.pt
This run is thus started from a previous master net.
all.binpack equaled 4 parts Wrong_NNUE_2.binpack https://drive.google.com/file/d/1seGNOqcVdvK_vPNq98j-zV3XPE5zWAeq/view?usp=sharing plus two parts of Training_Data.binpack https://drive.google.com/file/d/1RFkQES3DpsiJqsOtUshENtzPfFgUmEff/view?usp=sharing
Each set was concatenated together - making one large Wrong_NNUE 2 binpack and one large Training so the were approximately equal in size. They were then interleaved together. The idea was to give Wrong_NNUE.binpack closer to equal weighting with the Training_Data binpack
passed STC:
https://tests.stockfishchess.org/tests/view/
60d0c0a7a8ec07dc34c072b2
LLR: 2.93 (-2.94,2.94) <-0.50,2.50>
Total: 18440 W: 1693 L: 1531 D: 15216
Ptnml(0-2): 67, 1225, 6464, 1407, 57
passed LTC:
https://tests.stockfishchess.org/tests/view/
60d762793beab81350ac9d72
LLR: 2.98 (-2.94,2.94) <0.50,3.50>
Total: 93120 W: 3152 L: 2933 D: 87035
Ptnml(0-2): 48, 2581, 41076, 2814, 41
passed LTC (rebased branch to current master):
https://tests.stockfishchess.org/tests/view/
60d85eeb3beab81350ac9e2b
LLR: 2.96 (-2.94,2.94) <0.50,3.50>
Total: 42688 W: 1347 L: 1206 D: 40135
Ptnml(0-2): 14, 1097, 18981, 1238, 14.
closes https://github.com/official-stockfish/Stockfish/pull/3592
Bench: 4906727
Joost VandeVondele [Wed, 23 Jun 2021 05:23:21 +0000]
Update WDL model for NNUE
This updates the WDL model based on the LTC statistics in June this year (10M games),
so from pre-NNUE to NNUE based results.
(for old results see, https://github.com/official-stockfish/Stockfish/pull/2778)
As before the fit by the model to the data is quite good.
closes https://github.com/official-stockfish/Stockfish/pull/3582
No functional change
bmc4 [Tue, 22 Jun 2021 22:33:14 +0000]
Simplify Reductions Initialization
passed
STC:
LLR: 2.94 (-2.94,2.94) <-2.50,0.50>
Total: 45032 W: 3600 L: 3518 D: 37914
Ptnml(0-2): 111, 2893, 16435, 2957, 120
https://tests.stockfishchess.org/tests/view/
60d2655d40925195e7a6c527
LTC:
LLR: 3.00 (-2.94,2.94) <-2.50,0.50>
Total: 25728 W: 786 L: 722 D: 24220
Ptnml(0-2): 5, 650, 11494, 706, 9
https://tests.stockfishchess.org/tests/view/
60d2b14240925195e7a6c577
closes https://github.com/official-stockfish/Stockfish/pull/3584
bench: 4602977
Fabian Fichter [Sat, 26 Jun 2021 20:44:43 +0000]
Add missing include
Fabian Fichter [Sat, 26 Jun 2021 18:26:01 +0000]
Merge official-stockfish/master
Fabian Fichter [Sat, 26 Jun 2021 14:04:59 +0000]
Merge official-stockfish/master
bench: 5173306
Stéphane Nicolet [Tue, 22 Jun 2021 07:08:37 +0000]
Detect fortresses a little bit quicker
In the so-called "hybrid" method of evaluation of current master, we use the
classical eval (because of its speed) instead of the NNUE eval when the classical
material balance approximation hints that the position is "winning enough" to
rely on the classical eval.
This trade-off idea between speed and accuracy works well in general, but in
some fortress positions the classical eval is just bad. So in shuffling branches
of the search tree, we (slowly) increase the thresehold so that eventually we
don't trust classical anymore and switch to NNUE evaluation.
This patch increases that threshold faster, so that we switch to NNUE quicker
in shuffling branches. Idea is to incite Stockfish to spend less time in fortresses
lines in the search tree, and spend more time searching the critical lines.
passed STC:
LLR: 2.96 (-2.94,2.94) <-0.50,2.50>
Total: 47872 W: 3908 L: 3720 D: 40244
Ptnml(0-2): 122, 3053, 17419, 3199, 143
https://tests.stockfishchess.org/tests/view/
60cef34b457376eb8bcab79d
passed LTC:
LLR: 2.93 (-2.94,2.94) <0.50,3.50>
Total: 73616 W: 2326 L: 2143 D: 69147
Ptnml(0-2): 21, 1940, 32705, 2119, 23
https://tests.stockfishchess.org/tests/view/
60cf6d842114332881e73528
Retested at LTC against lastest master:
LLR: 2.93 (-2.94,2.94) <0.50,3.50>
Total: 18264 W: 642 L: 532 D: 17090
Ptnml(0-2): 6, 479, 8055, 583, 9
https://tests.stockfishchess.org/tests/view/
60d18cd540925195e7a6c351
closes https://github.com/official-stockfish/Stockfish/pull/3578
Bench: 5139233
MichaelB7 [Mon, 21 Jun 2021 12:10:35 +0000]
Make net nn-
190f102a22c3.nnue the default net.
Trained with the pytorch trainer: https://github.com/glinscott/nnue-pytorch
python train.py i:/bin/all.binpack i:/bin/all.binpack --gpus 1 --threads 4 --num-workers 30 --batch-size 16384 --progress_bar_refresh_rate 300 --smart-fen-skipping --random-fen-skipping 3 --features=HalfKAv2^ --lambda=1.0 --max_epochs=440 --seed %random%%random% --default_root_dir exp/run_17 --resume-from-model ./pt/nn-
75980ca503c6.pt
This run is thus started from the previous master net.
all.binpack equaled 4 parts Wrong_NNUE_2.binpack https://drive.google.com/file/d/1seGNOqcVdvK_vPNq98j-zV3XPE5zWAeq/view?usp=sharing plus two parts of Training_Data.binpack https://drive.google.com/file/d/1RFkQES3DpsiJqsOtUshENtzPfFgUmEff/view?usp=sharing
Each set was concatenated together - making one large Wrong_NNUE 2 binpack and one large Training so the were approximately equal in size. They were then interleaved together. The idea was to give Wrong_NNUE.binpack closer to equal weighting with the Training_Data binpack
passed LTC
https://tests.stockfishchess.org/tests/view/
60d09f52b4c17000d679517f
LLR: 2.93 (-2.94,2.94) <0.50,3.50>
Total: 32184 W: 1100 L: 970 D: 30114
Ptnml(0-2): 10, 878, 14193, 994, 17
passed STC
https://tests.stockfishchess.org/tests/view/
60d086c02114332881e7368e
LLR: 2.93 (-2.94,2.94) <-0.50,2.50>
Total: 11360 W: 1056 L: 906 D: 9398
Ptnml(0-2): 25, 735, 4026, 853, 41
closes https://github.com/official-stockfish/Stockfish/pull/3576
Bench: 4631244
Joost VandeVondele [Mon, 21 Jun 2021 06:23:50 +0000]
Fix build error on OSX
directly use integer version for cp calculation.
fixes https://github.com/official-stockfish/Stockfish/issues/3573
closes https://github.com/official-stockfish/Stockfish/pull/3574
No functional change
Stéphane Nicolet [Wed, 16 Jun 2021 05:23:26 +0000]
Remove the Contempt UCI option
This patch removes the UCI option for setting Contempt in classical evaluation.
It is exactly equivalent to using Contempt=0 for the UCI contempt value and keeping
the dynamic part in the algo (renaming this dynamic part `trend` to better describe
what it does). We have tried quite hard to implement a working Contempt feature for
NNUE but nothing really worked, so it is probably time to give up.
Interested chess fans wishing to keep playing with the UCI option for Contempt and
use it with the classical eval are urged to download the version tagged "SF_Classical"
of Stockfish (dated 31 July 2020), as it was the last version where our search
algorithm was tuned for the classical eval and is probably our strongest classical
player ever: https://github.com/official-stockfish/Stockfish/tags
Passed STC:
LLR: 2.95 (-2.94,2.94) <-2.50,0.50>
Total: 72904 W: 6228 L: 6175 D: 60501
Ptnml(0-2): 221, 5006, 25971, 5007, 247
https://tests.stockfishchess.org/tests/view/
60c98bf9457376eb8bcab18d
Passed LTC:
LLR: 2.93 (-2.94,2.94) <-2.50,0.50>
Total: 45168 W: 1601 L: 1547 D: 42020
Ptnml(0-2): 38, 1331, 19786, 1397, 32
https://tests.stockfishchess.org/tests/view/
60c9c7fa457376eb8bcab1bb
closes https://github.com/official-stockfish/Stockfish/pull/3575
Bench: 4947716
Stéphane Nicolet [Sun, 20 Jun 2021 08:29:20 +0000]
Keep more pawns and pieces when attacking
This patch increase the weight of pawns and pieces from 28 to 32
in the scaling formula we apply to the output of the NNUE pure eval.
Increasing this gradient for pawns and pieces means that Stockfish
will try a little harder to keep material when she has the advantage,
and try a little bit harder to escape into an endgame when she is
under pressure.
STC:
LLR: 2.93 (-2.94,2.94) <-0.50,2.50>
Total: 53168 W: 4371 L: 4177 D: 44620
Ptnml(0-2): 160, 3389, 19283, 3601, 151
https://tests.stockfishchess.org/tests/view/
60cefd1d457376eb8bcab7ab
LTC:
LLR: 2.94 (-2.94,2.94) <0.50,3.50>
Total: 10888 W: 386 L: 288 D: 10214
Ptnml(0-2): 3, 260, 4821, 356, 4
https://tests.stockfishchess.org/tests/view/
60cf709d2114332881e7352b
closes https://github.com/official-stockfish/Stockfish/pull/3571
Bench: 4965430
Fabian Fichter [Sun, 20 Jun 2021 09:15:25 +0000]
Replace CI badge
MichaelB7 [Sat, 19 Jun 2021 13:57:09 +0000]
Make net nn-
75980ca503c6.nnue the default.
trained with the Python command
c:\nnue>python train.py i:/bin/all.binpack i:/bin/all.binpack --gpus 1 --threads 4 --num-workers 30 --batch-size 16384 --progress_bar_refresh_rate 300 --smart-fen-skipping --random-fen-skipping 3 --features=HalfKAv2^ --lambda=1.0 --max_epochs=440 --seed %random%%random% --default_root_dir exp/run_10 --resume-from-model ./pt/nn-
3b20abec10c1.pt
`
all.binpack equaled 4 parts Wrong_NNUE_2.binpack https://drive.google.com/file/d/1seGNOqcVdvK_vPNq98j-zV3XPE5zWAeq/view?usp=sharing plus two parts of Training_Data.binpack https://drive.google.com/file/d/1RFkQES3DpsiJqsOtUshENtzPfFgUmEff/view?usp=sharing
Each set was concatenated together - making one large Wrong_NNUE 2 binpack and one large Training so the were approximately equal in size. They were then interleaved together. The idea was to give Wrong_NNUE.binpack closer to equal weighting with the Training_Data binpack .
Net nn-
3b20abec10c1.nnue was chosen as the --resume-from-model with the idea that through learning, the manually hex edited values will be learned and will not need to be manually adjusted going forward. They would also be fine tuned by the learning process.
passed STC:
https://tests.stockfishchess.org/tests/view/
60cdf91e457376eb8bcab66f
LLR: 2.95 (-2.94,2.94) <-0.50,2.50>
Total: 18256 W: 1639 L: 1479 D: 15138
Ptnml(0-2): 59, 1179, 6505, 1313, 72
passed LTC:
https://tests.stockfishchess.org/tests/view/
60ce2166457376eb8bcab6e1
LLR: 2.94 (-2.94,2.94) <0.50,3.50>
Total: 18792 W: 654 L: 542 D: 17596
Ptnml(0-2): 9, 490, 8291, 592, 14
closes https://github.com/official-stockfish/Stockfish/pull/3570
Bench: 5020972
Fabian Fichter [Sat, 19 Jun 2021 14:03:25 +0000]
Merge official-stockfish/master
No functional change.
Tomasz Sobczyk [Thu, 17 Jun 2021 10:36:06 +0000]
Change trace with NNUE eval support
This patch adds some more output to the `eval` command. It adds a board display
with estimated piece values (method is remove-piece, evaluate, put-piece), and
splits the NNUE evaluation with (psqt,layers) for each bucket for the NNUE net.
Example:
```
./stockfish
position fen 3Qb1k1/1r2ppb1/pN1n2q1/Pp1Pp1Pr/4P2p/4BP2/4B1R1/1R5K b - - 11 40
eval
Contributing terms for the classical eval:
+------------+-------------+-------------+-------------+
| Term | White | Black | Total |
| | MG EG | MG EG | MG EG |
+------------+-------------+-------------+-------------+
| Material | ---- ---- | ---- ---- | -0.73 -1.55 |
| Imbalance | ---- ---- | ---- ---- | -0.21 -0.17 |
| Pawns | 0.35 -0.00 | 0.19 -0.26 | 0.16 0.25 |
| Knights | 0.04 -0.08 | 0.12 -0.01 | -0.08 -0.07 |
| Bishops | -0.34 -0.87 | -0.17 -0.61 | -0.17 -0.26 |
| Rooks | 0.12 0.00 | 0.08 0.00 | 0.04 0.00 |
| Queens | 0.00 0.00 | -0.27 -0.07 | 0.27 0.07 |
| Mobility | 0.84 1.76 | 0.01 0.66 | 0.83 1.10 |
|King safety | -0.99 -0.17 | -0.72 -0.10 | -0.27 -0.07 |
| Threats | 0.27 0.27 | 0.73 0.86 | -0.46 -0.59 |
| Passed | 0.00 0.00 | 0.79 0.82 | -0.79 -0.82 |
| Space | 0.61 0.00 | 0.24 0.00 | 0.37 0.00 |
| Winnable | ---- ---- | ---- ---- | 0.00 -0.03 |
+------------+-------------+-------------+-------------+
| Total | ---- ---- | ---- ---- | -1.03 -2.14 |
+------------+-------------+-------------+-------------+
NNUE derived piece values:
+-------+-------+-------+-------+-------+-------+-------+-------+
| | | | Q | b | | k | |
| | | | +12.4 | -1.62 | | | |
+-------+-------+-------+-------+-------+-------+-------+-------+
| | r | | | p | p | b | |
| | -3.89 | | | -0.84 | -1.19 | -3.32 | |
+-------+-------+-------+-------+-------+-------+-------+-------+
| p | N | | n | | | q | |
| -1.81 | +3.71 | | -4.82 | | | -5.04 | |
+-------+-------+-------+-------+-------+-------+-------+-------+
| P | p | | P | p | | P | r |
| +1.16 | -0.91 | | +0.55 | +0.12 | | +0.50 | -4.02 |
+-------+-------+-------+-------+-------+-------+-------+-------+
| | | | | P | | | p |
| | | | | +2.33 | | | +1.17 |
+-------+-------+-------+-------+-------+-------+-------+-------+
| | | | | B | P | | |
| | | | | +4.79 | +1.54 | | |
+-------+-------+-------+-------+-------+-------+-------+-------+
| | | | | B | | R | |
| | | | | +4.54 | | +6.03 | |
+-------+-------+-------+-------+-------+-------+-------+-------+
| | R | | | | | | K |
| | +4.81 | | | | | | |
+-------+-------+-------+-------+-------+-------+-------+-------+
NNUE network contributions (Black to move)
+------------+------------+------------+------------+
| Bucket | Material | Positional | Total |
| | (PSQT) | (Layers) | |
+------------+------------+------------+------------+
| 0 | + 0.32 | - 1.46 | - 1.13 |
| 1 | + 0.25 | - 0.68 | - 0.43 |
| 2 | + 0.46 | - 1.72 | - 1.25 |
| 3 | + 0.55 | - 1.80 | - 1.25 |
| 4 | + 0.48 | - 1.77 | - 1.29 |
| 5 | + 0.40 | - 2.00 | - 1.60 |
| 6 | + 0.57 | - 2.12 | - 1.54 | <-- this bucket is used
| 7 | + 3.38 | - 2.00 | + 1.37 |
+------------+------------+------------+------------+
Classical evaluation -1.00 (white side)
NNUE evaluation +1.54 (white side)
Final evaluation +2.38 (white side) [with scaled NNUE, hybrid, ...]
```
Also renames the export_net() function to save_eval() while there.
closes https://github.com/official-stockfish/Stockfish/pull/3562
No functional change
proukornew [Fri, 18 Jun 2021 21:52:46 +0000]
Fix for Cygwin's environment build-profile (fixed)
The Cygwin environment has two g++ compilers, each with a different problem
for compiling Stockfish at the moment:
(a) g++.exe : full posix build compiler, linked to cygwin dll.
=> This one has a problem embedding the net.
(b) x86_64-w64-mingw32-g++.exe : native Windows build compiler.
=> This one manages to embed the net, but has a problem related to libgcov
when we use the profile-build target of Stockfish.
This patch solves the problem for compiler (b), so that our recommended command line
if you want to build an optimized version of Stockfish on Cygwin becomes something
like the following (you can change the ARCH value to whatever you want, but note
the COMP and CXX variables pointing at the right compiler):
```
make -j profile-build ARCH=x86-64-modern COMP=mingw CXX=x86_64-w64-mingw32-c++.exe
```
closes https://github.com/official-stockfish/Stockfish/pull/3569
No functional change
Fabian Fichter [Sat, 19 Jun 2021 08:21:34 +0000]
Add variants.ini testing to CI
Fabian Fichter [Sat, 19 Jun 2021 07:12:04 +0000]
Revert Makefile change
Fabian Fichter [Sat, 19 Jun 2021 06:49:19 +0000]
Ignore copy assignment warning
Fabian Fichter [Sat, 19 Jun 2021 06:09:33 +0000]
Fix compiler warning
Fabian Fichter [Sat, 19 Jun 2021 05:55:05 +0000]
Add workflow for variants
Tomasz Sobczyk [Fri, 18 Jun 2021 10:03:03 +0000]
Add basic github workflow
move to github actions to replace travis CI.
First version, testing on linux using gcc and clang.
gcc build with sanitizers and valgrind.
No functional change
Joost VandeVondele [Fri, 18 Jun 2021 21:50:01 +0000]
Make net nn-
50144f835024.nnue the default
trained with the Python command
c:\nnue>python train.py i:/bin/all.binpack i:/bin/all.binpack --gpus 1 --threads 4 --num-workers 30 --batch-size 16384 --progress_bar_refresh_rate 300 --smart-fen-skipping --random-fen-skipping 3 --features=HalfKAv2^ --lambda=1.0 --max_epochs=440 --seed %random%%random% --default_root_dir exp/run_8 --resume-from-model ./pt/nn-
6ad41a9207d0.pt
`
all.binpack equaled 4 parts Wrong_NNUE_2.binpack https://drive.google.com/file/d/1seGNOqcVdvK_vPNq98j-zV3XPE5zWAeq/view?usp=sharing plus two parts of Training_Data.binpack https://drive.google.com/file/d/1RFkQES3DpsiJqsOtUshENtzPfFgUmEff/view?usp=sharing
Each set was concatenated together - make one large Wrong_NNUE 2 binpack and one large Training_Data of approximate size. They were then interleaved together. The idea was to give Wrong_NNUE.binpack closer to equal weighting with the Training _Data binpack .
nn-
6ad41a9207d0.pt was derived from a net vondele ran which passed STC quickly,
but faltered in LTC. https://tests.stockfishchess.org/tests/view/
60cba666457376eb8bcab443
STC:
LLR: 2.95 (-2.94,2.94) <-0.50,2.50>
Total: 18792 W: 2068 L: 1889 D: 14835
Ptnml(0-2): 82, 1480, 6117, 1611, 106
https://tests.stockfishchess.org/tests/view/
60ccda8b457376eb8bcab568
LTC:
LLR: 2.94 (-2.94,2.94) <0.50,3.50>
Total: 11376 W: 574 L: 454 D: 10348
Ptnml(0-2): 4, 412, 4747, 510, 15
https://tests.stockfishchess.org/tests/view/
60ccf952457376eb8bcab58d
closes https://github.com/official-stockfish/Stockfish/pull/3568
Bench: 4900906
Tomasz Sobczyk [Fri, 18 Jun 2021 10:03:03 +0000]
Add basic github workflow
move to github actions to replace travis CI.
First version, testing on linux using gcc and clang.
gcc build with sanitizers and valgrind.
No functional change
SFisGOD [Fri, 18 Jun 2021 19:09:20 +0000]
Update default net to nn-
aa9d7eeb397e.nnue
Optimization of vondele's nn-
33c9d39e5eb6.nnue using SPSA
https://tests.stockfishchess.org/tests/view/
60ca68be457376eb8bcab28b
Setting: ck values are default based on how large the parameters are
The new values for this net are the raw values at the end of the tuning (80k games)
The significant changes are in buckets 1 and 2 (5-12 pieces) so the main difference is in playing endgames if we compare it to nn-33c9. There is also change in bucket 7 (29-32 pieces) but not as substantial as the changes in buckets 1 and 2. If we interpret the changes based on an experiment a few months ago, this new net plays more optimistically during endgames and less optimistically during openings.
STC:
LLR: 2.93 (-2.94,2.94) <-0.50,2.50>
Total: 49504 W: 4246 L: 4053 D: 41205
Ptnml(0-2): 140, 3282, 17749, 3407, 174
https://tests.stockfishchess.org/tests/view/
60cbd752457376eb8bcab478
LTC:
LLR: 2.95 (-2.94,2.94) <0.50,3.50>
Total: 88720 W: 4926 L: 4651 D: 79143
Ptnml(0-2): 105, 4048, 35793, 4295, 119
https://tests.stockfishchess.org/tests/view/
60cc7828457376eb8bcab4fa
closes https://github.com/official-stockfish/Stockfish/pull/3566
Bench: 4758885
ap [Thu, 17 Jun 2021 23:43:58 +0000]
New default net nn-
3b20abec10c1.nnue
This net was created by @pleomati, who manually edited with an hex editor
10 values randomly chosen in the LCSFNet10 net (nn-
6ad41a9207d0.nnue) to
create this one. The LCSFNet10 net was trained by Joost VandeVondele from
a dataset combining Stockfish games and Leela games (16x10^9 positions from
SF self-play at depth 9, and 6.3x10^9 positions from Leela games, so overall
72% of Stockfish positions and 28% of Leela positions).
passed STC 10+0.1:
LLR: 2.94 (-2.94,2.94) <-0.50,2.50>
Total: 50888 W: 5881 L: 5654 D: 39353
Ptnml(0-2): 281, 4290, 16085, 4497, 291
https://tests.stockfishchess.org/tests/view/
60cbfa68457376eb8bcab49a
passed LTC 60+0.6:
LLR: 2.94 (-2.94,2.94) <0.50,3.50>
Total: 25480 W: 1498 L: 1338 D: 22644
Ptnml(0-2): 36, 1155, 10193, 1325, 31
https://tests.stockfishchess.org/tests/view/
60cc4af8457376eb8bcab4d4
closes https://github.com/official-stockfish/Stockfish/pull/3564
Bench: 4904930
Stéphane Nicolet [Thu, 17 Jun 2021 16:09:42 +0000]
Revert "Fix for Cygwin's environment build-profile"
This reverts commit "Fix for Cygwin's environment build-profile", as it was
giving errors for "make clean" on some Windows environments. See comments in
https://github.com/official-stockfish/Stockfish/commit/
68bf362ea2385a641be9f5ed9ce2acdf55a1ecf1
Possibly somebody can propose a solution that would fix Cygwin builds and
not break on other system too, stay tuned! :-)
No functional change
bmc4 [Tue, 15 Jun 2021 23:56:09 +0000]
Simplify reduction when best move doesn't change frequently.
STC:
LLR: 2.94 (-2.94,2.94) <-2.50,0.50>
Total: 40400 W: 3468 L: 3377 D: 33555
Ptnml(0-2): 134, 2734, 14388, 2795, 149
https://tests.stockfishchess.org/tests/view/
60c93e5a457376eb8bcab15f
LTC:
LLR: 2.94 (-2.94,2.94) <-2.50,0.50>
Total: 34200 W: 1190 L: 1128 D: 31882
Ptnml(0-2): 22, 998, 15001, 1054, 25
https://tests.stockfishchess.org/tests/view/
60c96a1a457376eb8bcab180
closes https://github.com/official-stockfish/Stockfish/pull/3559
bench: 5629669
proukornew [Thu, 13 May 2021 21:49:28 +0000]
Fix for Cygwin's environment build-profile
The Cygwin environment has two g++ compilers, each with a different problem
for compiling Stockfish at the moment:
(a) g++.exe : full posix build compiler, linked to cygwin dll.
=> This one has a problem embedding the net.
(b) x86_64-w64-mingw32-g++.exe : native Windows build compiler.
=> This one manages to embed the net, but has a problem related to libgcov
when we use the profile-build target of Stockfish.
This patch solves the problem for compiler (b), so that our recommended command line
if you want to build an optimized version of Stockfish on Cygwin becomes something
like the following (you can change the ARCH value to whatever you want, but note
the COMP and CXX variables pointing at the right compiler):
```
make -j profile-build ARCH=x86-64-modern COMP=mingw CXX=x86_64-w64-mingw32-c++.exe
```
closes https://github.com/official-stockfish/Stockfish/pull/3463
No functional change
Joost VandeVondele [Tue, 15 Jun 2021 10:49:23 +0000]
New default net nn-
33c9d39e5eb6.nnue
As the previous net, this net is trained on Leela games as provided by borg.
See also https://lczero.org/blog/2021/06/the-importance-of-open-data/
The particular data set, which is a mix of T60 and T74 data, is now available as a single binpack:
https://drive.google.com/file/d/1RFkQES3DpsiJqsOtUshENtzPfFgUmEff/view?usp=sharing
The training command was:
python train.py ../../training_data_pylon.binpack ../../training_data_pylon.binpack --gpus 1 --threads 2 --num-workers 2 --batch-size 16384 --progress_bar_refresh_rate 300 --smart-fen-skipping --random-fen-skipping 10 --features=HalfKAv2^ --lambda=1.0 --max_epochs=440 --seed $RANDOM --default_root_dir exp/run_2
passed STC:
https://tests.stockfishchess.org/tests/view/
60c887cb457376eb8bcab054
LLR: 2.94 (-2.94,2.94) <-0.50,2.50>
Total: 12792 W: 1483 L: 1311 D: 9998
Ptnml(0-2): 62, 989, 4131, 1143, 71
passed LTC:
https://tests.stockfishchess.org/tests/view/
60c8e5c4457376eb8bcab0f0
LLR: 2.95 (-2.94,2.94) <0.50,3.50>
Total: 11272 W: 601 L: 477 D: 10194
Ptnml(0-2): 9, 421, 4657, 535, 14
also had strong LTC performance against another strong net of the series:
https://tests.stockfishchess.org/tests/view/
60c8c40d457376eb8bcab0c6
closes https://github.com/official-stockfish/Stockfish/pull/3557
Bench: 5032320
J. Oster [Mon, 14 Jun 2021 15:28:30 +0000]
Fix a rare case of wrong TB ranking
of a root move leading to a 3-fold repetition.
With this small fix a draw ranking and thus a draw score is being applied.
This works for both, ranking by dtz or wdl tables.
Fixes https://github.com/official-stockfish/Stockfish/issues/3542
(No functional change without TBs.)
Bench: 4877339
Tomasz Sobczyk [Sat, 12 Jun 2021 18:45:14 +0000]
Reduce the number of accumulator states
Reduce from 3 to 2. Make the intent of the states clearer.
STC: https://tests.stockfishchess.org/tests/view/
60c50111457376eb8bcaad03
LLR: 2.95 (-2.94,2.94) <-2.50,0.50>
Total: 61888 W: 5007 L: 4944 D: 51937
Ptnml(0-2): 164, 3947, 22649, 4030, 154
LTC: https://tests.stockfishchess.org/tests/view/
60c52b1c457376eb8bcaad2c
LLR: 2.94 (-2.94,2.94) <-2.50,0.50>
Total: 20248 W: 688 L: 618 D: 18942
Ptnml(0-2): 7, 551, 8946, 605, 15
closes https://github.com/official-stockfish/Stockfish/pull/3548
No functional change.
JWmer [Sun, 13 Jun 2021 21:48:32 +0000]
Update default net to nn-
8e47cf062333.nnue
This net is the result of training on data used by the Leela project. More precisely,
we shuffled T60 and T74 data kindly provided by borg (for different Tnn, the data is
a result of Leela selfplay with differently sized Leela nets).
The data is available at vondele's google drive:
https://drive.google.com/drive/folders/1mftuzYdl9o6tBaceR3d_VBQIrgKJsFpl.
The Leela data comes in small chunks of .binpack files. To shuffle them, we simply
used a small python script to randomly rename the files, and then concatenated them
using `cat`. As validation data we picked a file of T60 data. We will further investigate
T74 data.
The training for the NNUE architecture used 200 epochs with the Python trainer from
the Stockfish project. Unlike the previous run we tried with this data, this run does
not have adjusted scaling — not because we didn't want to, but because we forgot.
However, this training randomly skips 40% more positions than previous run. The loss
was very spiky and decreased slower than it does usually.
Training loss: https://github.com/official-stockfish/images/blob/main/training-loss-
8e47cf062333.png
Validation loss: https://github.com/official-stockfish/images/blob/main/validation-loss-
8e47cf062333.png
This is the exact training command:
python train.py --smart-fen-skipping --random-fen-skipping 14 --batch-size 16384 --threads 4 --num-workers 4 --gpus 1 trainingdata\training_data.binpack validationdata\val.binpack
---
10k STC result:
ELO: 3.61 +-3.3 (95%) LOS: 98.4%
Total: 10000 W: 1241 L: 1137 D: 7622
Ptnml(0-2): 68, 841, 3086, 929, 76
https://tests.stockfishchess.org/tests/view/
60c67e50457376eb8bcaae70
10k LTC result:
ELO: 2.71 +-2.4 (95%) LOS: 98.8%
Total: 10000 W: 659 L: 581 D: 8760
Ptnml(0-2): 22, 485, 3900, 579, 14
https://tests.stockfishchess.org/tests/view/
60c69deb457376eb8bcaae98
Passed LTC:
LLR: 2.93 (-2.94,2.94) <0.50,3.50>
Total: 9648 W: 685 L: 545 D: 8418
Ptnml(0-2): 22, 448, 3740, 596, 18
https://tests.stockfishchess.org/tests/view/
60c6d41c457376eb8bcaaecf
---
closes https://github.com/official-stockfish/Stockfish/pull/3550
Bench: 4877339
Tomasz Sobczyk [Thu, 10 Jun 2021 15:43:42 +0000]
Register count for feature transformer
Compute optimal register count for feature transformer accumulation dynamically.
This also introduces a change where AVX512 would only use 8 registers instead of 16
(now possible due to a 2x increase in feature transformer size).
closes https://github.com/official-stockfish/Stockfish/pull/3543
No functional change
Vizvezdenec [Sat, 29 May 2021 03:39:14 +0000]
Do less LMR extensions
This patch restricts LMR extensions (of non-transposition table moves) from being
used when the transposition table move was extended by two plies via singular
extension. This may serve to limit search explosions in certain positions.
This makes a lot of sense because the precondition for the tt-move to have been
singular extended by two plies is that the result of the alternate search (with
excluded the tt-move) has been a hard fail low: it is natural to later search less
for non tt-moves in this situation.
The current state of depth/extensions/reductions management is getting quite tricky
in our search algo, see https://github.com/official-stockfish/Stockfish/pull/3546#issuecomment-
860174549
for some discussion. Suggestions welcome!
Passed STC
https://tests.stockfishchess.org/tests/view/
60c3f293457376eb8bcaac8d
LLR: 2.95 (-2.94,2.94) <-0.50,2.50>
Total: 117984 W: 9698 L: 9430 D: 98856
Ptnml(0-2): 315, 7708, 42703, 7926, 340
passed LTC
https://tests.stockfishchess.org/tests/view/
60c46ea5457376eb8bcaacc7
LLR: 2.97 (-2.94,2.94) <0.50,3.50>
Total: 11280 W: 401 L: 302 D: 10577
Ptnml(0-2): 2, 271, 4998, 364, 5
closes https://github.com/official-stockfish/Stockfish/pull/3546
Bench: 4709974
Stéphane Nicolet [Sun, 13 Jun 2021 07:59:34 +0000]
Clarify use of UCI options
Update README.md to clarify use of UCI options
closes https://github.com/official-stockfish/Stockfish/pull/3540
No functional change
Tomasz Sobczyk [Wed, 9 Jun 2021 09:21:55 +0000]
Read NNUE net faster
Load feature transformer weights in bulk on little-endian machines.
This is in particular useful to test new nets with c-chess-cli,
see https://github.com/lucasart/c-chess-cli/issues/44
```
$ time ./stockfish.exe uci
Before : 0m0.914s
After : 0m0.483s
```
No functional change
Joost VandeVondele [Wed, 9 Jun 2021 21:23:13 +0000]
Limit double extensions
Double extensions can lead to search explosions, for specific positions.
Currently, however, these double extensions are worth about 10Elo and cannot
be removed. This patch instead limits the number of double extensions given
to a maximum of 3.
This fixes https://github.com/official-stockfish/Stockfish/issues/3532
where the following testcase was shown to be problematic:
```
uci
setoption name Hash value 4
setoption name Contempt value 0
ucinewgame
position fen 8/Pk6/8/1p6/8/P1K5/8/6B1 w - - 37 130
go depth 20
```
passed STC:
https://tests.stockfishchess.org/tests/view/
60c13161457376eb8bcaaa0f
LLR: 2.95 (-2.94,2.94) <-2.50,0.50>
Total: 73256 W: 6114 L: 6062 D: 61080
Ptnml(0-2): 222, 4912, 26306, 4968, 220
passed LTC:
https://tests.stockfishchess.org/tests/view/
60c196fb457376eb8bcaaa6b
LLR: 2.94 (-2.94,2.94) <-2.50,0.50>
Total: 166440 W: 5559 L: 5594 D: 155287
Ptnml(0-2): 106, 4921, 73197, 4894, 102
closes https://github.com/official-stockfish/Stockfish/pull/3544
Bench: 5067605
Fabian Fichter [Fri, 11 Jun 2021 11:18:09 +0000]
Update Travis CI URLs
bmc4 [Mon, 7 Jun 2021 18:47:37 +0000]
Simplify promotion move generator
This patch removes Knight promotion checks from Captures. As a consequence,
it also removes this underpromotion from qsearch.
STC:
LLR: 2.93 (-2.94,2.94) <-2.50,0.50>
Total: 37776 W: 3113 L: 3023 D: 31640
Ptnml(0-2): 103, 2419, 13755, 2507, 104
https://tests.stockfishchess.org/tests/view/
60be6a06457376eb8bcaa775
LTC:
LLR: 2.93 (-2.94,2.94) <-2.50,0.50>
Total: 39760 W: 1257 L: 1203 D: 37300
Ptnml(0-2): 11, 1079, 17646, 1133, 11
https://tests.stockfishchess.org/tests/view/
60beb972457376eb8bcaa7c5
closes https://github.com/official-stockfish/Stockfish/pull/3536
Bench: 5530620
Fabian Fichter [Sun, 6 Jun 2021 19:28:13 +0000]
Support Opulent chess
bmc4 [Sun, 6 Jun 2021 16:31:57 +0000]
Reduce in LMR reduction on PvNode
reduce reduction in LMR by 1 on PvNode.
STC:
LLR: 2.93 (-2.94,2.94) <-0.50,2.50>
Total: 266080 W: 22438 L: 21996 D: 221646
Ptnml(0-2): 774, 17874, 95376, 18168, 848
https://tests.stockfishchess.org/tests/view/
60bc0661457376eb8bcaa4bb
LTC:
LLR: 2.93 (-2.94,2.94) <0.50,3.50>
Total: 20144 W: 698 L: 587 D: 18859
Ptnml(0-2): 2, 529, 8906, 626, 9
https://tests.stockfishchess.org/tests/view/
60bcc3f2457376eb8bcaa58d
closes https://github.com/official-stockfish/Stockfish/pull/3534
bench: 5173012
Fabian Fichter [Sun, 6 Jun 2021 19:01:31 +0000]
Support Sho shogi
Fabian Fichter [Sun, 6 Jun 2021 17:10:05 +0000]
Merge official-stockfish/master
bench: 5068534
Fabian Fichter [Sun, 6 Jun 2021 17:03:54 +0000]
Merge official-stockfish/master
No change.
Fabian Fichter [Sun, 6 Jun 2021 16:55:34 +0000]
Merge official-stockfish/master
bench: 5392690