Stockfish Download.
Forum rules
Any post on the Stockfish download MUST include a direct link to download the new executable - MANDATORY.
Any post on the Stockfish download MUST include a direct link to download the new executable - MANDATORY.
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: rn5f107s2
Date: Sat Jul 29 00:56:26 2023 +0200
Timestamp: 1690584986
Malus during move ordering for putting pieces en prise
The original idea is the reverse of a previous patch [1] which added bonuses
in our move picker to moves escaping threats. In this patch, in addition to
bonuses for evading threats, we apply penalties to moves moving to threatened
squares.
Further tweaks of that basic idea resulted in this specific version which
further increases the penalty of moves moving to squares threatend depending
on the piece threatening it. So for example a queen moving to a square attacked
by a pawn would receive a larger penalty than a queen moving to square attacked
by a rook.
[1]: https://github.com/official-stockfish/S ... 9bc5d7d67e
--------
Passed STC:
https://tests.stockfishchess.org/tests/ ... 650abb935d
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 95552 W: 24654 L: 24250 D: 46648 Elo +1.47
Ptnml(0-2): 322, 11098, 24562, 11442, 352
Passed LTC:
https://tests.stockfishchess.org/tests/ ... 650abba8b3
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 190230 W: 48806 L: 48178 D: 93246 Elo +1.15
Ptnml(0-2): 90, 20439, 53453, 21019, 114
-------
closes https://github.com/official-stockfish/S ... /pull/4711
Bench: 1350831
Date: Sat Jul 29 00:56:26 2023 +0200
Timestamp: 1690584986
Malus during move ordering for putting pieces en prise
The original idea is the reverse of a previous patch [1] which added bonuses
in our move picker to moves escaping threats. In this patch, in addition to
bonuses for evading threats, we apply penalties to moves moving to threatened
squares.
Further tweaks of that basic idea resulted in this specific version which
further increases the penalty of moves moving to squares threatend depending
on the piece threatening it. So for example a queen moving to a square attacked
by a pawn would receive a larger penalty than a queen moving to square attacked
by a rook.
[1]: https://github.com/official-stockfish/S ... 9bc5d7d67e
--------
Passed STC:
https://tests.stockfishchess.org/tests/ ... 650abb935d
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 95552 W: 24654 L: 24250 D: 46648 Elo +1.47
Ptnml(0-2): 322, 11098, 24562, 11442, 352
Passed LTC:
https://tests.stockfishchess.org/tests/ ... 650abba8b3
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 190230 W: 48806 L: 48178 D: 93246 Elo +1.15
Ptnml(0-2): 90, 20439, 53453, 21019, 114
-------
closes https://github.com/official-stockfish/S ... /pull/4711
Bench: 1350831
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: AndrovT
Date: Sun Aug 6 21:22:37 2023 +0200
Timestamp: 1691349757
Implement AffineTransformSparseInput for armv8
Implements AffineTransformSparseInput layer for the NNUE evaluation
for the armv8 and armv8-dotprod architectures. We measured some nice
speed improvements via 10 runs of our benchmark:
armv8, Cortex-X1 : 18.5% speed-up
armv8, Cortex-A76 : 13.2% speed-up
armv8-dotprod, Cortex-X1 : 27.1% speed-up
armv8-dotprod, Cortex-A76 : 12.1% speed-up
armv8, Cortex-A72, Raspberry Pi 4 : 8.2% speed-up (thanks Torom!)
closes https://github.com/official-stockfish/S ... /pull/4719
No functional change
Date: Sun Aug 6 21:22:37 2023 +0200
Timestamp: 1691349757
Implement AffineTransformSparseInput for armv8
Implements AffineTransformSparseInput layer for the NNUE evaluation
for the armv8 and armv8-dotprod architectures. We measured some nice
speed improvements via 10 runs of our benchmark:
armv8, Cortex-X1 : 18.5% speed-up
armv8, Cortex-A76 : 13.2% speed-up
armv8-dotprod, Cortex-X1 : 27.1% speed-up
armv8-dotprod, Cortex-A76 : 12.1% speed-up
armv8, Cortex-A72, Raspberry Pi 4 : 8.2% speed-up (thanks Torom!)
closes https://github.com/official-stockfish/S ... /pull/4719
No functional change
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: Michael Chaly
Date: Mon Aug 7 07:24:11 2023 +0200
Timestamp: 1691385851
Adjust futility pruning base in qsearch
Current master used value from transposition table there if it existed,
this patch uses minimum between this tt value and the static eval instead
(this thus is closer to the main search function, which uses the static eval).
Passed STC:
https://tests.stockfishchess.org/tests/ ... c21c0d6a8c
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 252544 W: 64671 L: 64039 D: 123834 Elo +0.87
Ptnml(0-2): 839, 29207, 65575, 29785, 866
Passed LTC:
https://tests.stockfishchess.org/tests/ ... c21c0d9fcb
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 60150 W: 15374 L: 15012 D: 29764 Elo +2.09
Ptnml(0-2): 24, 6321, 17024, 6681, 25
closes https://github.com/official-stockfish/S ... /pull/4725
Bench: 1573024
Date: Mon Aug 7 07:24:11 2023 +0200
Timestamp: 1691385851
Adjust futility pruning base in qsearch
Current master used value from transposition table there if it existed,
this patch uses minimum between this tt value and the static eval instead
(this thus is closer to the main search function, which uses the static eval).
Passed STC:
https://tests.stockfishchess.org/tests/ ... c21c0d6a8c
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 252544 W: 64671 L: 64039 D: 123834 Elo +0.87
Ptnml(0-2): 839, 29207, 65575, 29785, 866
Passed LTC:
https://tests.stockfishchess.org/tests/ ... c21c0d9fcb
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 60150 W: 15374 L: 15012 D: 29764 Elo +2.09
Ptnml(0-2): 24, 6321, 17024, 6681, 25
closes https://github.com/official-stockfish/S ... /pull/4725
Bench: 1573024
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: Cody Ho
Date: Wed Aug 9 18:27:16 2023 +0200
Timestamp: 1691598436
Remove all references to Score type
Score is obsolete with the removal of psqt.
No functional change.
Signed-off-by: Cody Ho <>
closes https://github.com/official-stockfish/S ... /pull/4724
Date: Wed Aug 9 18:27:16 2023 +0200
Timestamp: 1691598436
Remove all references to Score type
Score is obsolete with the removal of psqt.
No functional change.
Signed-off-by: Cody Ho <>
closes https://github.com/official-stockfish/S ... /pull/4724
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: Joost VandeVondele
Date: Fri Aug 11 19:27:46 2023 +0200
Timestamp: 1691774866
Improve testing coverage, remove unused code
a) Add further tests to CI to cover most features. This uncovered a potential race
in case setoption was sent between two searches. As the UCI protocol requires
this sent to be went the engine is not searching, setoption now ensures that
this is the case.
b) Remove some unused code
closes https://github.com/official-stockfish/S ... /pull/4730
No functional change
Date: Fri Aug 11 19:27:46 2023 +0200
Timestamp: 1691774866
Improve testing coverage, remove unused code
a) Add further tests to CI to cover most features. This uncovered a potential race
in case setoption was sent between two searches. As the UCI protocol requires
this sent to be went the engine is not searching, setoption now ensures that
this is the case.
b) Remove some unused code
closes https://github.com/official-stockfish/S ... /pull/4730
No functional change
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: mstembera
Date: Sun Aug 13 11:59:06 2023 +0200
Timestamp: 1691920746
Simplify material difference in evaluate
STC: https://tests.stockfishchess.org/tests/ ... c21c0ddc15
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 100032 W: 25698 L: 25547 D: 48787 Elo +0.52
Ptnml(0-2): 308, 11748, 25771, 11863, 326
LTC: https://tests.stockfishchess.org/tests/ ... c21c0df775
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 123870 W: 31463 L: 31348 D: 61059 Elo +0.32
Ptnml(0-2): 63, 13487, 34719, 13604, 62
Besides rebasing I replaced PawnValueMg w/ 126 explicitly to decouple from https://tests.stockfishchess.org/tests/ ... c21c0debbb by @peregrineshahin which also passed. #4734
closes https://github.com/official-stockfish/S ... /pull/4731
Bench: 1447866
Date: Sun Aug 13 11:59:06 2023 +0200
Timestamp: 1691920746
Simplify material difference in evaluate
STC: https://tests.stockfishchess.org/tests/ ... c21c0ddc15
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 100032 W: 25698 L: 25547 D: 48787 Elo +0.52
Ptnml(0-2): 308, 11748, 25771, 11863, 326
LTC: https://tests.stockfishchess.org/tests/ ... c21c0df775
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 123870 W: 31463 L: 31348 D: 61059 Elo +0.32
Ptnml(0-2): 63, 13487, 34719, 13604, 62
Besides rebasing I replaced PawnValueMg w/ 126 explicitly to decouple from https://tests.stockfishchess.org/tests/ ... c21c0debbb by @peregrineshahin which also passed. #4734
closes https://github.com/official-stockfish/S ... /pull/4731
Bench: 1447866
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: Disservin
Date: Wed Aug 16 21:25:42 2023 +0200
Timestamp: 1692213942
Add -funroll-loops to CXXFLAGS
Optimize profiling data accuracy by enabling -funroll-loops during the profile
generation phase, in addition to its default activation by -fprofile-use.
This seems to produce a slightly faster binary, for most compilers.
make -j profile-build ARCH=x86-64-avx2
sf_base = 1392875 +/- 5905 (95%)
sf_test = 1402332 +/- 7303 (95%)
diff = 9457 +/- 4413 (95%)
speedup = 0.67896% +/- 0.317% (95%)
STC:
LLR: 2.93 (-2.94,2.94) <0.00,2.00>
Total: 34784 W: 8970 L: 8665 D: 17149 Elo +3.05
Ptnml(0-2): 115, 3730, 9405, 4019, 123
https://tests.stockfishchess.org/tests/ ... c21c0e92e1
closes https://github.com/official-stockfish/S ... /pull/4750
No functional change
Date: Wed Aug 16 21:25:42 2023 +0200
Timestamp: 1692213942
Add -funroll-loops to CXXFLAGS
Optimize profiling data accuracy by enabling -funroll-loops during the profile
generation phase, in addition to its default activation by -fprofile-use.
This seems to produce a slightly faster binary, for most compilers.
make -j profile-build ARCH=x86-64-avx2
sf_base = 1392875 +/- 5905 (95%)
sf_test = 1402332 +/- 7303 (95%)
diff = 9457 +/- 4413 (95%)
speedup = 0.67896% +/- 0.317% (95%)
STC:
LLR: 2.93 (-2.94,2.94) <0.00,2.00>
Total: 34784 W: 8970 L: 8665 D: 17149 Elo +3.05
Ptnml(0-2): 115, 3730, 9405, 4019, 123
https://tests.stockfishchess.org/tests/ ... c21c0e92e1
closes https://github.com/official-stockfish/S ... /pull/4750
No functional change
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: Shahin M. Shahin
Date: Tue Aug 22 11:32:51 2023 +0200
Timestamp: 1692696771
Reduce repetitions branches
Increase reduction on retrying a move we just retreated that falls in a repetition:
if current move can be the same move from previous previous turn then we retreated
that move on the previous turn, this patch increases reduction if retrying that move
results in a repetition.
How to continue from there? Maybe we some variants of this idea could bring Elo too
(only testing the destination square, or triangulations, etc.)
Passed STC:
https://tests.stockfishchess.org/tests/ ... 7cbd9ad976
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 424000 W: 108675 L: 107809 D: 207516 Elo +0.71
Ptnml(0-2): 1296, 47350, 113896, 48108, 1350
Passed LTC:
https://tests.stockfishchess.org/tests/ ... 1252666872
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 89682 W: 22976 L: 22569 D: 44137 Elo +1.58
Ptnml(0-2): 39, 8843, 26675, 9240, 44
closes https://github.com/official-stockfish/S ... /pull/4757
bench: 1574347
Date: Tue Aug 22 11:32:51 2023 +0200
Timestamp: 1692696771
Reduce repetitions branches
Increase reduction on retrying a move we just retreated that falls in a repetition:
if current move can be the same move from previous previous turn then we retreated
that move on the previous turn, this patch increases reduction if retrying that move
results in a repetition.
How to continue from there? Maybe we some variants of this idea could bring Elo too
(only testing the destination square, or triangulations, etc.)
Passed STC:
https://tests.stockfishchess.org/tests/ ... 7cbd9ad976
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 424000 W: 108675 L: 107809 D: 207516 Elo +0.71
Ptnml(0-2): 1296, 47350, 113896, 48108, 1350
Passed LTC:
https://tests.stockfishchess.org/tests/ ... 1252666872
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 89682 W: 22976 L: 22569 D: 44137 Elo +1.58
Ptnml(0-2): 39, 8843, 26675, 9240, 44
closes https://github.com/official-stockfish/S ... /pull/4757
bench: 1574347
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: Stéphane Nicolet
Date: Thu Aug 24 08:11:17 2023 +0200
Timestamp: 1692857477
Play turbulent when defending, simpler when attacking
This patch decays a little the evaluation (up to a few percent) for
positions which have a large complexity measure (material imbalance,
positional compensations, etc).
This may have nice consequences on the playing style, as it modifies
the search differently for attack and defense, both effects being
desirable:
- to see the effect on positions when Stockfish is defending, let us
suppose for instance that the side to move is Stockfish and the nnue
evaluation on the principal variation is -100 : this patch will decay
positions with an evaluation of -103 (say) to the same level, provided
they have huge material imbalance or huge positional compensation.
In other words, chaotic positions with an evaluation of -103 are now
comparable in our search tree to stable positions with an evaluation
of -100, and chaotic positions with an evaluation of -102 are now
preferred to stable positions with an evaluation of -100.
- the effect on positions when Stockfish is attacking is the opposite.
Let us suppose for instance that the side to move is Stockfish and the
nnue evaluation on the principal variation is +100 : this patch will
decay the evaluation to +97 if the positions on the principal variation
have huge material imbalance or huge positional compensation. In other
words, stable positions with an evaluation of +97 are now comparable
in our search tree to chaotic positions with an evaluation of +100,
and stable positions with an evaluation of +98 are now preferred to
chaotic positions with an evaluation of +100.
So the effect of this small change of evaluation on the playing style
is that Stockfish should now play a little bit more turbulent when
defending, and choose slightly simpler lines when attacking.
passed STC:
LLR: 2.93 (-2.94,2.94) <0.00,2.00>
Total: 268448 W: 68713 L: 68055 D: 131680 Elo +0.85
Ptnml(0-2): 856, 31514, 68943, 31938, 973
https://tests.stockfishchess.org/tests/ ... 12526653ed
passed LTC:
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 141060 W: 36066 L: 35537 D: 69457 Elo +1.30
Ptnml(0-2): 71, 15179, 39522, 15666, 92
https://tests.stockfishchess.org/tests/ ... 7747553725
closes https://github.com/official-stockfish/S ... /pull/4762
Bench: 1426295
Date: Thu Aug 24 08:11:17 2023 +0200
Timestamp: 1692857477
Play turbulent when defending, simpler when attacking
This patch decays a little the evaluation (up to a few percent) for
positions which have a large complexity measure (material imbalance,
positional compensations, etc).
This may have nice consequences on the playing style, as it modifies
the search differently for attack and defense, both effects being
desirable:
- to see the effect on positions when Stockfish is defending, let us
suppose for instance that the side to move is Stockfish and the nnue
evaluation on the principal variation is -100 : this patch will decay
positions with an evaluation of -103 (say) to the same level, provided
they have huge material imbalance or huge positional compensation.
In other words, chaotic positions with an evaluation of -103 are now
comparable in our search tree to stable positions with an evaluation
of -100, and chaotic positions with an evaluation of -102 are now
preferred to stable positions with an evaluation of -100.
- the effect on positions when Stockfish is attacking is the opposite.
Let us suppose for instance that the side to move is Stockfish and the
nnue evaluation on the principal variation is +100 : this patch will
decay the evaluation to +97 if the positions on the principal variation
have huge material imbalance or huge positional compensation. In other
words, stable positions with an evaluation of +97 are now comparable
in our search tree to chaotic positions with an evaluation of +100,
and stable positions with an evaluation of +98 are now preferred to
chaotic positions with an evaluation of +100.
So the effect of this small change of evaluation on the playing style
is that Stockfish should now play a little bit more turbulent when
defending, and choose slightly simpler lines when attacking.
passed STC:
LLR: 2.93 (-2.94,2.94) <0.00,2.00>
Total: 268448 W: 68713 L: 68055 D: 131680 Elo +0.85
Ptnml(0-2): 856, 31514, 68943, 31938, 973
https://tests.stockfishchess.org/tests/ ... 12526653ed
passed LTC:
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 141060 W: 36066 L: 35537 D: 69457 Elo +1.30
Ptnml(0-2): 71, 15179, 39522, 15666, 92
https://tests.stockfishchess.org/tests/ ... 7747553725
closes https://github.com/official-stockfish/S ... /pull/4762
Bench: 1426295
- APOCALYPSE
- Posts: 181
- Joined: Fri Oct 14, 2022 6:50 am
- Has thanked: 657 times
- Been thanked: 328 times
- Contact:
Re: Stockfish Download.
Author: Stéphane Nicolet
Date: Sun Sep 3 09:28:16 2023 +0200
Timestamp: 1693726096
Introduce simple_eval() for lazy evaluations
This patch implements the pure materialistic evaluation called simple_eval()
to gain a speed-up during Stockfish search.
We use the so-called lazy evaluation trick: replace the accurate but slow
NNUE network evaluation by the super-fast simple_eval() if the position
seems to be already won (high material advantage). To guard against some
of the most obvious blunders introduced by this idea, this patch uses the
following features which will raise the lazy evaluation threshold in some
situations:
- avoid lazy evals on shuffling branches in the search tree
- avoid lazy evals if the position at root already has a material imbalance
- avoid lazy evals if the search value at root is already winning/losing.
Moreover, we add a small random noise to the simple_eval() term. This idea
(stochastic mobility in the minimax tree) was worth about 200 Elo in the pure
simple_eval() player on Lichess.
Overall, the current implementation in this patch evaluates about 2% of the
leaves in the search tree lazily.
--------------------------------------------
STC:
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 60352 W: 15585 L: 15234 D: 29533 Elo +2.02
Ptnml(0-2): 216, 6906, 15578, 7263, 213
https://tests.stockfishchess.org/tests/ ... ffae366209
LTC:
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 35106 W: 8990 L: 8678 D: 17438 Elo +3.09
Ptnml(0-2): 14, 3668, 9887, 3960, 24
https://tests.stockfishchess.org/tests/ ... 4e3f04c0e7
verification run at VLTC:
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 74362 W: 19088 L: 18716 D: 36558 Elo +1.74
Ptnml(0-2): 6, 7226, 22348, 7592, 9
https://tests.stockfishchess.org/tests/ ... 4e3f04d3ae
All three tests above were run with adjudication off, we also verified that
there was no regression on matetracker (thanks Disservin!).
----------------------------------------------
closes https://github.com/official-stockfish/S ... /pull/4771
Bench: 1393714
Date: Sun Sep 3 09:28:16 2023 +0200
Timestamp: 1693726096
Introduce simple_eval() for lazy evaluations
This patch implements the pure materialistic evaluation called simple_eval()
to gain a speed-up during Stockfish search.
We use the so-called lazy evaluation trick: replace the accurate but slow
NNUE network evaluation by the super-fast simple_eval() if the position
seems to be already won (high material advantage). To guard against some
of the most obvious blunders introduced by this idea, this patch uses the
following features which will raise the lazy evaluation threshold in some
situations:
- avoid lazy evals on shuffling branches in the search tree
- avoid lazy evals if the position at root already has a material imbalance
- avoid lazy evals if the search value at root is already winning/losing.
Moreover, we add a small random noise to the simple_eval() term. This idea
(stochastic mobility in the minimax tree) was worth about 200 Elo in the pure
simple_eval() player on Lichess.
Overall, the current implementation in this patch evaluates about 2% of the
leaves in the search tree lazily.
--------------------------------------------
STC:
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 60352 W: 15585 L: 15234 D: 29533 Elo +2.02
Ptnml(0-2): 216, 6906, 15578, 7263, 213
https://tests.stockfishchess.org/tests/ ... ffae366209
LTC:
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 35106 W: 8990 L: 8678 D: 17438 Elo +3.09
Ptnml(0-2): 14, 3668, 9887, 3960, 24
https://tests.stockfishchess.org/tests/ ... 4e3f04c0e7
verification run at VLTC:
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 74362 W: 19088 L: 18716 D: 36558 Elo +1.74
Ptnml(0-2): 6, 7226, 22348, 7592, 9
https://tests.stockfishchess.org/tests/ ... 4e3f04d3ae
All three tests above were run with adjudication off, we also verified that
there was no regression on matetracker (thanks Disservin!).
----------------------------------------------
closes https://github.com/official-stockfish/S ... /pull/4771
Bench: 1393714