Joost VandeVondele
4b2979760f
Check clock more often
...
This patch changes the frequency with which the time is checked, changing
frequency from every 1024 counted nodes to every 512 counted nodes. The
master value was tuned for the old classical eval, the patch takes the
roughly 2x slowdown in nps with SFNNUEv7 into account. This could reduce
a bit the losses on time on fishtest, but they are probably unrelated.
passed STC:
https://tests.stockfishchess.org/tests/view/64bb8ae5dc56e1650abb1b11
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 76576 W: 19677 L: 19501 D: 37398
Ptnml(0-2): 274, 8592, 20396, 8736, 290
closes https://github.com/official-stockfish/Stockfish/pull/4704
No functional change
2023-07-24 01:56:20 +02:00
Michael Chaly
5ea1cbc778
Do more futility pruning for cutNodes that are not in TT
...
This is somewhat similar to IIR for cutnodes but instead of reducing
depth for cutnodes that don't have tt move we reduce margin multiplier
in futility pruning for cutnodes that are not in TT.
Passed STC:
https://tests.stockfishchess.org/tests/view/64b244b90cdec37b95734c5b
LLR: 2.95 (-2.94,2.94) <0.00,2.00>
Total: 75552 W: 19404 L: 19029 D: 37119
Ptnml(0-2): 233, 8806, 19378, 9071, 288
Passed LTC:
https://tests.stockfishchess.org/tests/view/64b3ae5a0cdec37b95736516
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 104988 W: 27152 L: 26697 D: 51139
Ptnml(0-2): 41, 11259, 29446, 11700, 48
closes https://github.com/official-stockfish/Stockfish/pull/4700
bench 1727577
2023-07-19 21:40:38 +02:00
mstembera
1444837887
Remove inline assembly
...
closes https://github.com/official-stockfish/Stockfish/pull/4698
No functional change
2023-07-19 21:39:51 +02:00
Cody Ho
3fe0d5c533
Unused code cleanup
...
closes https://github.com/official-stockfish/Stockfish/pull/4696
No functional change
2023-07-19 21:38:39 +02:00
Jorge
6abd0bd9fb
Add CodeQL workflow
...
add CI tooling to detect security bugs.
closes https://github.com/official-stockfish/Stockfish/pull/4659
No functional change
2023-07-19 21:36:38 +02:00
rn5f107s2
42d28424bc
Removes a few Bitboards and functions
...
No longer used
closes https://github.com/official-stockfish/Stockfish/pull/4695
No functional change
2023-07-18 08:10:11 +02:00
Robert Nurnberg @ elitebook
6a31f54d3c
remove evalType from bench
...
no longer used
closes https://github.com/official-stockfish/Stockfish/pull/4694
No functional change
2023-07-18 08:09:52 +02:00
Joost VandeVondele
34d0c1b527
Switch to macos 13 for CI
...
allows for building x86-64-avx2 and x86-64-bmi2 binaries for mac
install coreutils
show hardware capabilities as seen by the compilers
move some tests from sse41 to avx2 as platforms support it
closes https://github.com/official-stockfish/Stockfish/pull/4692
No functional change
2023-07-16 22:27:13 +02:00
Joost VandeVondele
d70a905ce3
Deprecate the x86-64-modern arch
...
Explicitly describe the architecture as deprecated,
it remains available as its current alias x86-64-sse41-popcnt
CPUs that support just this instruction set are now years old,
any few years old Intel or AMD CPU supports x86-64-avx2. However,
naming things 'modern' doesn't age well, so instead use explicit names.
Adjust CI accordingly. Wiki, fishtest, downloader done as well.
closes https://github.com/official-stockfish/Stockfish/pull/4691
No functional change.
2023-07-16 17:47:25 +02:00
Michael Chaly
913574f421
Remove improvement variable
...
No longer used in a meaningful way.
Improve comments.
Closes https://github.com/official-stockfish/Stockfish/pull/4688
No functional change
2023-07-16 15:18:41 +02:00
maxim
18fdc2df3c
Remove pawnKey from StateInfo
...
Remove pawnKey since it is not used anymore.
Passed Non-regression STC:
https://tests.stockfishchess.org/tests/view/64b023110cdec37b9573265c
LLR: 2.96 (-2.94,2.94) <-1.75,0.25>
Total: 334848 W: 85440 L: 85545 D: 163863
Ptnml(0-2): 1134, 38101, 89075, 37964, 1150
closes https://github.com/official-stockfish/Stockfish/pull/4687
No functional change
2023-07-16 15:16:14 +02:00
Joost VandeVondele
e8a5c64988
Consolidate to centipawns conversion
...
avoid doing this calculations in multiple places.
closes https://github.com/official-stockfish/Stockfish/pull/4686
No functional change
2023-07-16 15:14:50 +02:00
Joost VandeVondele
e89469925d
Remove some CI parts not yet working
...
downgrading compiler didn't work for windows build. Stick to gcc 13 for now.
Windows x86-32 not a 32bit binary, remove.
closes https://github.com/official-stockfish/Stockfish/pull/4685
No functional change
2023-07-16 15:13:24 +02:00
AndrovT
a42ab95e1f
remove large input specialization
...
Removes unused large input specialization for dense affine transform. It has been obsolete since #4612 was merged.
closes https://github.com/official-stockfish/Stockfish/pull/4684
No functional change
2023-07-16 15:12:21 +02:00
Linmiao Xu
ee53f8ed2f
Reintroduce nnue eval pawn count multipliers again
...
With separate multipliers for nnue eval and optimism scaling.
This patch used 4 out of 7 params tuned with spsa at 30+0.3
using this tuning config:
Value LazyThreshold1 = Value(3622);
Value LazyThreshold2 = Value(1962);
int psqThresh = 2048;
int nnueNpmBase = 945;
int nnuePcMult = 0;
int optNpmBase = 150;
int optPcMult = 0;
TUNE(SetRange(3322, 3922), LazyThreshold1);
TUNE(SetRange(1662, 2262), LazyThreshold2);
TUNE(SetRange(1748, 2348), psqThresh);
TUNE(SetRange(745, 1145), nnueNpmBase);
TUNE(SetRange(-16, 16), nnuePcMult);
TUNE(SetRange(0, 300), optNpmBase);
TUNE(SetRange(-16, 16), optPcMult);
Passed STC:
https://tests.stockfishchess.org/tests/view/64a5a9b402cd07745c60ed07
LLR: 2.95 (-2.94,2.94) <0.00,2.00>
Total: 173632 W: 44417 L: 43903 D: 85312
Ptnml(0-2): 547, 20025, 45068, 20719, 457
Passed LTC:
https://tests.stockfishchess.org/tests/view/64a972a302cd07745c6136af
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 277644 W: 70955 L: 70147 D: 136542
Ptnml(0-2): 193, 29902, 77787, 30784, 156
closes https://github.com/official-stockfish/Stockfish/pull/4681
bench 1556301
2023-07-15 09:16:09 +02:00
Joost VandeVondele
a3a91f3f9f
Build and test more binaries in CI
...
use a fixed compiler on Linux and Windows (right now gcc 11).
build avxvnni on Windows (Linux needs updated core utils)
build x86-32 on Linux (Windows needs other mingw)
fix a Makefile issue where a failed PGOBENCH would not stop the build
reuse the WINE_PATH for SDE as we do for QEMU
use WINE_PATH variable also for the signature
verify the bench for each of the binaries
do not build x86-64-avx2 on macos
closes https://github.com/official-stockfish/Stockfish/pull/4682
No functional change
2023-07-15 09:15:16 +02:00
FauziAkram
acdbf45171
Use more expressive names for bonus1 and bonus2
...
closes https://github.com/official-stockfish/Stockfish/pull/4683
No functional change
2023-07-15 09:13:02 +02:00
Joost VandeVondele
f5ab5832c6
Generate binaries for more advanced architectures
...
use intel's Software Development Emulator (SDE) in the actions that build the binaries.
This allows for building on Windows and Linux binaries for
- x86-64-avx512
- x86-64-vnni256
- x86-64-vnni512
(x86-64-avxvnni needs more recent gcc in the actions)
also build x86-64-avx2 on macos.
closes https://github.com/official-stockfish/Stockfish/pull/4679
No functional change
2023-07-13 08:21:17 +02:00
mstembera
529d3be8e2
More simplifications and cleanup in affine_transform_sparse_input.h
...
closes https://github.com/official-stockfish/Stockfish/pull/4677
No functional change
2023-07-13 08:20:33 +02:00
Sebastian Buchwald
f972947492
Cleanup code after removal of classical evaluation
...
This includes the following changes:
- Remove declaration of removed global variable
- Adapt string that mentions removed UCI option
closes https://github.com/official-stockfish/Stockfish/pull/4675
No functional change
2023-07-13 08:19:37 +02:00
Joost VandeVondele
af110e02ec
Remove classical evaluation
...
since the introduction of NNUE (first released with Stockfish 12), we
have maintained the classical evaluation as part of SF in frozen form.
The idea that this code could lead to further inputs to the NN or
search did not materialize. Now, after five releases, this PR removes
the classical evaluation from SF. Even though this evaluation is
probably the best of its class, it has become unimportant for the
engine's strength, and there is little need to maintain this
code (roughly 25% of SF) going forward, or to expend resources on
trying to improve its integration in the NNUE eval.
Indeed, it had still a very limited use in the current SF, namely
for the evaluation of positions that are nearly decided based on
material difference, where the speed of the classical evaluation
outweights its inaccuracies. This impact on strength is small,
roughly 2Elo, and probably decreasing in importance as the TC grows.
Potentially, removal of this code could lead to the development of
techniques to have faster, but less accurate NN evaluation,
for certain positions.
STC
https://tests.stockfishchess.org/tests/view/64a320173ee09aa549c52157
Elo: -2.35 ± 1.1 (95%) LOS: 0.0%
Total: 100000 W: 24916 L: 25592 D: 49492
Ptnml(0-2): 287, 12123, 25841, 11477, 272
nElo: -4.62 ± 2.2 (95%) PairsRatio: 0.95
LTC
https://tests.stockfishchess.org/tests/view/64a320293ee09aa549c5215b
Elo: -1.74 ± 1.0 (95%) LOS: 0.0%
Total: 100000 W: 25010 L: 25512 D: 49478
Ptnml(0-2): 44, 11069, 28270, 10579, 38
nElo: -3.72 ± 2.2 (95%) PairsRatio: 0.96
VLTC SMP
https://tests.stockfishchess.org/tests/view/64a3207c3ee09aa549c52168
Elo: -1.70 ± 0.9 (95%) LOS: 0.0%
Total: 100000 W: 25673 L: 26162 D: 48165
Ptnml(0-2): 8, 9455, 31569, 8954, 14
nElo: -3.95 ± 2.2 (95%) PairsRatio: 0.95
closes https://github.com/official-stockfish/Stockfish/pull/4674
Bench: 1444646
2023-07-11 22:56:49 +02:00
Muzhen Gaming
6a8767a0d5
Simplify PvNode reduction
...
Simplification STC: https://tests.stockfishchess.org/tests/view/64a415803ee09aa549c539c3
LLR: 2.93 (-2.94,2.94) <-1.75,0.25>
Total: 37856 W: 9719 L: 9504 D: 18633
Ptnml(0-2): 98, 4277, 9977, 4464, 112
Simplification LTC: https://tests.stockfishchess.org/tests/view/64a5ffe202cd07745c60f360
LLR: 2.96 (-2.94,2.94) <-1.75,0.25>
Total: 55878 W: 14323 L: 14138 D: 27417
Ptnml(0-2): 21, 5993, 15732, 6166, 27
closes https://github.com/official-stockfish/Stockfish/pull/4673
Bench: 2604965
2023-07-11 22:55:00 +02:00
Joost VandeVondele
ee023d7fd7
Fix CI output
...
closes https://github.com/official-stockfish/Stockfish/pull/4669
No functional change
2023-07-11 22:53:15 +02:00
Linmiao Xu
e699fee513
Update default net to nn-c38c3d8d3920.nnue
...
This was a later epoch from the same experiment that led to the
previous master net. After training, it was prepared the same way:
1. greedy permuting L1 weights with https://github.com/official-stockfish/Stockfish/pull/4620
2. leb128 compression with https://github.com/glinscott/nnue-pytorch/pull/251
3. greedy 2- and 3- cycle permuting with https://github.com/official-stockfish/Stockfish/pull/4640
Local elo at 25k nodes per move (vs. L1-1536 nn-fdc1d0fe6455.nnue):
nn-epoch739.nnue : 20.2 +/- 1.7
Passed STC:
https://tests.stockfishchess.org/tests/view/64a050b33ee09aa549c4e4c8
LLR: 2.95 (-2.94,2.94) <0.00,2.00>
Total: 195552 W: 49977 L: 49430 D: 96145
Ptnml(0-2): 556, 22775, 50607, 23242, 596
Passed LTC:
https://tests.stockfishchess.org/tests/view/64a127bd3ee09aa549c4f60c
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 235452 W: 60327 L: 59609 D: 115516
Ptnml(0-2): 119, 25173, 66426, 25887, 121
closes https://github.com/official-stockfish/Stockfish/pull/4666
bench 2427629
2023-07-06 23:03:58 +02:00
Joost VandeVondele
9ba24912c1
Add armv8-dotprod to CI binaries
...
also generate binaries for more recent Android hardware.
closes https://github.com/official-stockfish/Stockfish/pull/4663
No functional change
2023-07-06 23:03:16 +02:00
mstembera
f8e65d82eb
Simplify away lookup_count.
...
https://tests.stockfishchess.org/tests/view/64a3c1a93ee09aa549c53167
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 32832 W: 8497 L: 8280 D: 16055
Ptnml(0-2): 80, 3544, 8967, 3729, 96
closes https://github.com/official-stockfish/Stockfish/pull/4662
No functional change
2023-07-06 23:02:11 +02:00
Joost VandeVondele
19e2a88504
Revise extract bench from git log in CI
...
order commits differently
closes https://github.com/official-stockfish/Stockfish/pull/4668
No functional change
2023-07-06 23:01:27 +02:00
ppigazzini
e87e103ca9
Remove leftover braces for if conditional in CI
...
closes https://github.com/official-stockfish/Stockfish/pull/4660
No functional change
2023-07-03 20:17:14 +02:00
ppigazzini
ca5d9a5ff0
Extract bench according to wiki instructions
...
- loop through the commits starting from the latest one
- read the bench value from the last match, if any, of the template
in the commit body text
closes https://github.com/official-stockfish/Stockfish/pull/4627
No functional change
2023-07-03 19:07:06 +02:00
rn5f107s2
95ce443aaa
simplified gives check castling
...
tested verifying perft and bench is unchanged
on a larger set of epds for both standard and FRC chess.
Passed non-regression STC:
https://tests.stockfishchess.org/tests/live_elo/648587be65ffe077ca123d78
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 153632 W: 41015 L: 40928 D: 71689
Ptnml(0-2): 377, 16077, 43816, 16174, 372
closes https://github.com/official-stockfish/Stockfish/pull/4628
No functional change
2023-07-03 18:54:22 +02:00
FauziAkram
9cd563cb54
Improving grammar and readability of comments
...
closes https://github.com/official-stockfish/Stockfish/pull/4643
No functional change
2023-07-03 18:38:41 +02:00
Muzhen Gaming
5f8480a730
Simplify score improvement reduction
...
Reduce depth by 2 based on score improvement, only for depths 3 to 11.
Simplification STC: https://tests.stockfishchess.org/tests/view/64929a53dc7002ce609c7807
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 238912 W: 63466 L: 63468 D: 111978
Ptnml(0-2): 564, 26262, 65805, 26262, 563
Simplification LTC: https://tests.stockfishchess.org/tests/view/64942e47dc7002ce609c9e07
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 64452 W: 17485 L: 17320 D: 29647
Ptnml(0-2): 19, 6161, 19706, 6316, 24
closes https://github.com/official-stockfish/Stockfish/pull/4637
Bench: 2740142
2023-07-03 18:33:27 +02:00
Muzhen Gaming
eb9aaf9489
Simplify away improvement term in null move search
...
passed STC:
https://tests.stockfishchess.org/tests/view/649c0d2edc7002ce609d33b5
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 271104 W: 72181 L: 72217 D: 126706
Ptnml(0-2): 691, 30042, 74129, 29992, 698
passed LTC:
https://tests.stockfishchess.org/tests/view/649d0dd7dc7002ce609d4efa
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 183120 W: 49469 L: 49418 D: 84233
Ptnml(0-2): 84, 17636, 56063, 17699, 78
closes https://github.com/official-stockfish/Stockfish/pull/4650
Bench: 2642851
2023-07-03 18:27:33 +02:00
peregrineshahin
fa143922ae
Fix pruning to (in TB loss) in Null move pruning.
...
Current logic can apply Null move pruning
on a dead-lost position returning an unproven loss
(i.e. in TB loss score or mated in losing score) on nonPv nodes.
on a default bench, this can be observed by adding this debugging line:
```
if (nullValue >= beta)
{
// Do not return unproven mate or TB scores
nullValue = std::min(nullValue, VALUE_TB_WIN_IN_MAX_PLY-1);
dbg_hit_on(nullValue <= VALUE_TB_LOSS_IN_MAX_PLY); // Hit #0 : Total 73983 Hits 1 Hit Rate (%) 0.00135166
if (thisThread->nmpMinPly || depth < 14)
return nullValue;
```
This fixes this very rare issue (happens at ~0.00135166% of the time) by
eliminating the need to try Null Move Pruning with dead-lost positions
and leaving it to be determined by a normal searching flow.
The previous try to fix was not as safe enough because it was capping
the returned value to (out of TB range) thus reviving the dead-lost position
based on an artificial clamp (i.e. the in TB score/mate score can be lost on that nonPv node):
https://tests.stockfishchess.org/tests/view/649756d5dc7002ce609cd794
Final fix:
Passed STC:
https://tests.stockfishchess.org/tests/view/649a5446dc7002ce609d1049
LLR: 2.93 (-2.94,2.94) <-1.75,0.25>
Total: 577280 W: 153613 L: 153965 D: 269702
Ptnml(0-2): 1320, 60594, 165190, 60190, 1346
Passed LTC:
https://tests.stockfishchess.org/tests/view/649cd048dc7002ce609d4801
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 246432 W: 66769 L: 66778 D: 112885
Ptnml(0-2): 83, 22105, 78847, 22100, 81
closes https://github.com/official-stockfish/Stockfish/pull/4649
Bench: 2425978
2023-07-03 18:24:41 +02:00
mstembera
80564bcfcd
Simplify lookup_count and clean up pieces().
...
https://github.com/official-stockfish/Stockfish/pull/4656
No functional change
2023-07-03 18:20:10 +02:00
disservin
8634717c64
Add bmi2 to CI generated binaries
...
verify bench for avx2 and bmi2 as well
closes https://github.com/official-stockfish/Stockfish/pull/4658
No functional change
2023-07-03 18:17:20 +02:00
ppigazzini
9a2d50eccc
Make posix and msys2 shells consistent in CI
...
In CI, it is typical for the process to halt immediately when an error
is encountered. However, with our `shell: bash {0}` configuration,
the process continues despite errors for posix shells.
This commit updates the behavior of posix and msys2 shells to ensure
consistency in terms of pipeline exit codes and stop conditions.
We adopt the most appropriate default behavior as recommended
by the GitHub documentation.
Update the code that searches for the bench value in the git log:
- to be compatible with the new shell settings
- to retry the value from the first line that contains
only the template and spaces/tabs/newlines
see also
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
https://github.com/msys2/setup-msys2/blob/main/main.js
closes https://github.com/official-stockfish/Stockfish/pull/4653
No functional change
2023-07-02 10:32:36 +02:00
Linmiao Xu
915532181f
Update NNUE architecture to SFNNv7 with larger L1 size of 2048
...
Creating this net involved:
- a 5-step training process from scratch
- greedy permuting L1 weights with https://github.com/official-stockfish/Stockfish/pull/4620
- leb128 compression with https://github.com/glinscott/nnue-pytorch/pull/251
- greedy 2- and 3- cycle permuting with https://github.com/official-stockfish/Stockfish/pull/4640
The 5 training steps were:
1. 400 epochs, lambda 1.0, lr 9.75e-4
UHOx2-wIsRight-multinet-dfrc-n5000-largeGensfen-d9.binpack (178G)
nodes5000pv2_UHO.binpack
data_pv-2_diff-100_nodes-5000.binpack
wrongIsRight_nodes5000pv2.binpack
multinet_pv-2_diff-100_nodes-5000.binpack
dfrc_n5000.binpack
large_gensfen_multipvdiff_100_d9.binpack
ep399 chosen as start model for step2
2. 800 epochs, end-lambda 0.75, skip 16
LeelaFarseer-T78juntoaugT79marT80dec.binpack (141G)
T60T70wIsRightFarseerT60T74T75T76.binpack
test78-junjulaug2022-16tb7p.no-db.min.binpack
test79-mar2022-16tb7p.no-db.min.binpack
test80-dec2022-16tb7p.no-db.min.binpack
ep559 chosen as start model for step3
3. 800 epochs, end-lambda 0.725, skip 20
leela96-dfrc99-v2-T80dectofeb-sk20-mar-v6-T77decT78janfebT79apr.binpack (223G)
leela96-filt-v2.min.binpack
dfrc99-16tb7p-eval-filt-v2.min.binpack
test80-dec2022-16tb7p-filter-v6-sk20.min-mar2023.binpack
test80-jan2023-16tb7p-filter-v6-sk20.min-mar2023.binpack
test80-feb2023-16tb7p-filter-v6-sk20.min-mar2023.binpack
test80-mar2023-2tb7p-filter-v6.min.binpack
test77-dec2021-16tb7p.no-db.min.binpack
test78-janfeb2022-16tb7p.no-db.min.binpack
test79-apr2022-16tb7p.no-db.min.binpack
ep499 chosen as start model for step4
4. 800 epochs, end-lambda 0.7, skip 24
0dd1cebea57 dataset https://github.com/official-stockfish/Stockfish/pull/4606
ep599 chosen as start model for step5
5. 800 epochs, end-lambda 0.7, skip 28
same dataset as step4
ep619 became nn-1b951f8b449d.nnue
For the final step5 training:
python3 easy_train.py \
--experiment-name L1-2048-S5-sameData-sk28-S4-0dd1cebea57-shuffled-S3-leela96-dfrc99-v2-T80dectofeb-sk20-mar-v6-T77decT78janfebT79apr-sk20-S2-LeelaFarseerT78T79T80-ep399-S1-UHOx2-wIsRight-multinet-dfrc-n5000-largeGensfen-d9 \
--training-dataset /data/leela96-dfrc99-T60novdec-v2-T80juntonovjanfebT79aprmayT78jantosepT77dec-v6dd-T80apr.binpack \
--early-fen-skipping 28 \
--nnue-pytorch-branch linrock/nnue-pytorch/misc-fixes-L1-2048 \
--engine-test-branch linrock/Stockfish/L1-2048 \
--start-from-engine-test-net False \
--start-from-model /data/experiments/experiment_L1-2048-S4-0dd1cebea57-shuffled-S3-leela96-dfrc99-v2-T80dectofeb-sk20-mar-v6-T77decT78janfebT79apr-sk20-S2-LeelaFarseerT78T79T80-ep399-S1-UHOx2-wIsRight-multinet-dfrc-n5000-largeGensfen-d9/training/run_0/nn-epoch599.nnue
--max_epoch 800 \
--lr 4.375e-4 \
--gamma 0.995 \
--start-lambda 1.0 \
--end-lambda 0.7 \
--tui False \
--seed $RANDOM \
--gpus 0
SF training data components for the step1 dataset:
https://drive.google.com/drive/folders/1yLCEmioC3Xx9KQr4T7uB6GnLm5icAYGU
Leela training data for steps 2-5 can be found at:
https://robotmoon.com/nnue-training-data/
Due to larger L1 size and slower inference, the speed penalty loses elo
at STC. Measurements from 100 bench runs at depth 13 with x86-64-modern
on Intel Core i5-1038NG7 2.00GHz:
sf_base = 1240730 +/- 3443 (95%)
sf_test = 1153341 +/- 2832 (95%)
diff = -87388 +/- 1616 (95%)
speedup = -7.04330% +/- 0.130% (95%)
Local elo at 25k nodes per move (vs. L1-1536 nn-fdc1d0fe6455.nnue):
nn-epoch619.nnue : 21.1 +/- 3.2
Failed STC:
https://tests.stockfishchess.org/tests/view/6498ee93dc7002ce609cf979
LLR: -2.95 (-2.94,2.94) <0.00,2.00>
Total: 11680 W: 3058 L: 3299 D: 5323
Ptnml(0-2): 44, 1422, 3149, 1181, 44
LTC:
https://tests.stockfishchess.org/tests/view/649b32f5dc7002ce609d20cf
Elo: 0.68 ± 1.5 (95%) LOS: 80.5%
Total: 40000 W: 10887 L: 10809 D: 18304
Ptnml(0-2): 36, 3938, 11958, 4048, 20
nElo: 1.50 ± 3.4 (95%) PairsRatio: 1.02
Passed VLTC 180+1.8:
https://tests.stockfishchess.org/tests/view/64992b43dc7002ce609cfd20
LLR: 3.06 (-2.94,2.94) <0.00,2.00>
Total: 38086 W: 10612 L: 10338 D: 17136
Ptnml(0-2): 9, 3316, 12115, 3598, 5
Passed VLTC SMP 60+0.6 th 8:
https://tests.stockfishchess.org/tests/view/649a21fedc7002ce609d0c7d
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 38936 W: 11091 L: 10820 D: 17025
Ptnml(0-2): 1, 2948, 13305, 3207, 7
closes https://github.com/official-stockfish/Stockfish/pull/4646
Bench: 2505168
2023-07-01 13:34:30 +02:00
cj5716
e551964ef6
Negative extension on cutNodes based on depth
...
This patch was inspired by candirufish original attempt at negative extensions
here that failed yellow: https://tests.stockfishchess.org/tests/view/6486529065ffe077ca124f32
I tested some variations of the idea and tuned a depth condition for
a modified version of it here https://tests.stockfishchess.org/tests/view/648db80a91c58631ce31fe00
after noticing abnormal scaling (ie many passed STC but not LTC)
After some small tweaks I got the final version here
Passed STC:
LLR: 2.98 (-2.94,2.94) <0.00,2.00>
Total: 122208 W: 32776 L: 32350 D: 57082
Ptnml(0-2): 310, 13250, 33553, 13686, 305
https://tests.stockfishchess.org/tests/view/64997934dc7002ce609d01e3
Passed LTC:
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 145092 W: 39617 L: 39115 D: 66360
Ptnml(0-2): 54, 13691, 44552, 14197, 52
https://tests.stockfishchess.org/tests/view/649a1c5ddc7002ce609d0bff
closes https://github.com/official-stockfish/Stockfish/pull/4644
Bench: 2637784
2023-07-01 13:06:49 +02:00
Stéphane Nicolet
e355c70594
Document the LEB128 patch
...
Add some comments and harmonize style for the LEB128 patch.
closes https://github.com/official-stockfish/Stockfish/pull/4642
No functional change
2023-07-01 13:01:28 +02:00
Daniel Monroe
ef94f77f8c
Update default net to nn-a3d1bfca1672.nnue
...
faster permutation of master net weights
Activation data taken from https://drive.google.com/drive/folders/1Ec9YuuRx4N03GPnVPoQOW70eucOKngQe?usp=sharing
Permutation found using 836387a0e5/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
2023-07-01 12:59:28 +02:00
Joost VandeVondele
0fd186fb28
Restore development
...
closes https://github.com/official-stockfish/Stockfish/pull/4651
No functional change
2023-07-01 12:52:31 +02:00
Joost VandeVondele
68e1e9b381
Stockfish 16
...
Official release version of Stockfish 16
Bench: 2593605
---
Stockfish 16
A new major release of Stockfish is now available at
https://stockfishchess.org/download/
*Quality of chess play*
Stockfish continues to demonstrate its ability to discover superior moves
with remarkable speed. In self-play against Stockfish 15, this new
release gains up to 50 Elo[1] and wins up to 12 times more game pairs[2]
than it loses. In major chess engine tournaments, Stockfish reliably tops
the rankings[3] winning the TCEC season 24 Superfinal, Swiss, Fischer
Random, and Double Random Chess tournaments and the CCC 19 Bullet,
20 Blitz, and 20 Rapid competitions. Leela Chess Zero[4] was the
challenger in most finals, putting top-engine chess now firmly in the
hands of teams embracing free and open-source software.
*Progress made*
This updated version of Stockfish introduces several enhancements,
including an upgraded neural net architecture (SFNNv6)[5], improved
implementation, and refined parameterization. The ongoing utilization
of Leela’s data combined with a novel inference approach exploiting
sparsity[6], and network compression[7] ensure a speedy evaluation and
modest binary sizes while allowing for more weights and higher accuracy.
The search has undergone more optimization, leading to improved
performance, particularly in longer analyses[8]. Additionally,
the Fishtest framework has been improved and is now able to run the
tests needed to validate new ideas with 10000s of CPU cores.
*Usability improvements*
Stockfish now comes with documentation, found in the wiki folder when
downloading it or on GitHub[9]. Additionally, Stockfish now includes
a clear and consistent forced tablebase win score, displaying a value
of 200 minus the number of plies required to reach a tablebase win[10].
Furthermore, the UCI_Elo option, to reduce its strength, has been
calibrated[11]. It is worth noting that the evaluation system remains
consistent with Stockfish 15.1[12], maintaining the choice that 100cp
means a 50% chance of winning the game against an equal opponent[13].
Finally, binaries of our latest development version are now provided
continuously as pre-releases on GitHub making it easier for
enthusiasts to download the latest and strongest version of
the program[14], we thank Roman Korba for having provided a similar
service for a long time.
*Thank you*
The success of the Stockfish project relies on the vibrant community
of passionate enthusiasts (we appreciate each and every one of you!)
who generously contribute their knowledge, time, and resources.
Together, this dedicated community works towards the common goal of
developing a powerful, freely accessible, and open-source chess engine.
We invite all chess enthusiasts to join the Fishtest testing framework
and contribute to the project[15].
The Stockfish team
[1] https://tests.stockfishchess.org/tests/view/649409f0dc7002ce609c99cc
[2] https://tests.stockfishchess.org/tests/view/649409d7dc7002ce609c99c6
[3] https://en.wikipedia.org/wiki/Stockfish_(chess)#Competition_results
[4] https://lczero.org/
[5] https://github.com/official-stockfish/Stockfish/commit/c1fff71
[6] https://github.com/official-stockfish/Stockfish/commit/38e6166
[7] https://github.com/official-stockfish/Stockfish/commit/a46087e
[8] https://github.com/official-stockfish/Stockfish/commit/472e726
[9] https://github.com/official-stockfish/Stockfish/wiki/
[10] https://github.com/official-stockfish/Stockfish/commit/def2966
[11] https://github.com/official-stockfish/Stockfish/commit/a08b8d4
[12] https://github.com/official-stockfish/Stockfish/commit/52e84e4
[13] https://github.com/official-stockfish/Stockfish/wiki/Stockfish-FAQ#interpretation-of-the-stockfish-evaluation
[14] https://github.com/official-stockfish/Stockfish/releases?q=prerelease%3Atrue
[15] https://stockfishchess.org/get-involved/
2023-06-29 08:00:10 +02:00
Linmiao Xu
a49b3ba7ed
Update default net to nn-5af11540bbfe.nnue
...
Created by retraining the sparsified master net (nn-cd2ff4716c34.nnue) on
a 100% minified dataset including Leela transformers data from T80 may2023.
Weights permuted with the exact methods and code in:
https://github.com/official-stockfish/Stockfish/pull/4620
LEB128 compression done with the new serialize.py param in:
https://github.com/glinscott/nnue-pytorch/pull/251
Initially trained with max epoch 800. Around epoch 780, training was paused
and max epoch raised to 960.
python3 easy_train.py \
--experiment-name L1-1536-sparse-master-retrain \
--training-dataset /data/leela96-dfrc99-v2-T60novdecT77decT78jantosepT79aprmayT80juntonovjan-v6dd-T80febtomay2023.min.binpack \
--early-fen-skipping 27 \
--start-from-engine-test-net True \
--max_epoch 960 \
--lr 4.375e-4 \
--gamma 0.995 \
--start-lambda 1.0 \
--end-lambda 0.7 \
--tui False \
--seed $RANDOM \
--gpus 0
For preparing the training dataset (interleaved size 328G):
python3 interleave_binpacks.py \
leela96-filt-v2.min.binpack \
dfrc99-16tb7p-eval-filt-v2.min.binpack \
filt-v6-dd-min/test60-novdec2021-12tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test77-dec2021-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test78-jantomay2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test78-juntosep2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test79-apr2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test79-may2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test80-jun2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test80-jul2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test80-aug2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test80-sep2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test80-oct2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test80-nov2022-16tb7p-filter-v6-dd.min.binpack \
filt-v6-dd-min/test80-jan2023-16tb7p-filter-v6-dd.min.binpack \
test80-2023/test80-feb2023-16tb7p-no-db.min.binpack \
test80-2023/test80-mar2023-2tb7p-no-db.min.binpack \
test80-2023/test80-apr2023-2tb7p-no-db.min.binpack \
test80-2023/test80-may2023-2tb7p-no-db.min.binpack \
/data/leela96-dfrc99-v2-T60novdecT77decT78jantosepT79aprmayT80juntonovjan-v6dd-T80febtomay2023.min.binpack
Minified binpacks and Leela T80 training data from 2023 available at:
https://robotmoon.com/nnue-training-data/
Local elo at 25k nodes per move:
nn-epoch879.nnue : 3.9 +/- 5.7
Passed STC:
https://tests.stockfishchess.org/tests/view/64928c1bdc7002ce609c7690
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 72000 W: 19242 L: 18889 D: 33869
Ptnml(0-2): 182, 7787, 19716, 8126, 189
Passed LTC:
https://tests.stockfishchess.org/tests/view/64930a37dc7002ce609c82e3
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 54552 W: 14978 L: 14647 D: 24927
Ptnml(0-2): 23, 5123, 16650, 5460, 20
closes https://github.com/official-stockfish/Stockfish/pull/4635
bench 2593605
2023-06-22 10:33:19 +02:00
peregrineshahin
48f7c74f15
Fix Potential in TB cutoffs for NMP.
...
Removes the second dependency on beta and caps the return value to VALUE_TB_WIN_IN_MAX_PLY - 1
Earlier tests:
STC:
LLR: 2.96 (-2.94,2.94) <-1.75,0.25>
Total: 193632 W: 51372 L: 51326 D: 90934
Ptnml(0-2): 447, 20111, 55687, 20091, 480
https://tests.stockfishchess.org/tests/view/6486ee4465ffe077ca125bc1
LTC:
LLR: 2.97 (-2.94,2.94) <-1.75,0.25>
Total: 331758 W: 89538 L: 89624 D: 152596
Ptnml(0-2): 114, 30121, 105516, 29993, 135
https://tests.stockfishchess.org/tests/view/6489401af42a44347ed7be42
updated constant:
LTC:
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 100260 W: 27143 L: 27017 D: 46100
Ptnml(0-2): 34, 8842, 32248, 8976, 30
https://tests.stockfishchess.org/tests/view/6492fcafdc7002ce609c818c
closes: https://github.com/official-stockfish/Stockfish/pull/4632
fixes: https://github.com/official-stockfish/Stockfish/issues/4598
bench: 2370027
2023-06-22 10:26:17 +02:00
Joost VandeVondele
52e84e4b46
Update winrate model with June data
...
Retained 748191776 scored positions for analysis
const int NormalizeToPawnValue = 328;
Corresponding spread = 60;
Corresponding normalized spread = 0.18337766691628035;
Draw rate at 0.0 eval at move 32 = 0.9914715947898592;
closes https://github.com/official-stockfish/Stockfish/pull/4636
No functional change
2023-06-22 10:17:44 +02:00
Joost VandeVondele
02728736ed
Update top CPU contributors
...
closes https://github.com/official-stockfish/Stockfish/pull/4629
No functional change
2023-06-22 10:15:51 +02:00
disservin
aec8fb3fde
Fix failing CI of pull requests
...
adds a guard to prevent pull requests from trying to delete the previous pre-release
closing https://github.com/official-stockfish/Stockfish/pull/4631
No functional change.
2023-06-20 18:50:12 +02:00
Joerg Oster
6eaa1c3ecd
Fix indentation in qsearch.
...
https://github.com/official-stockfish/Stockfish/pull/4630
No functional change.
2023-06-20 10:47:07 +02:00
disservin
a68a1c1154
create prereleases upon push to master
...
using github actions, create a prerelease for the latest commit to master.
As such a development version will be available on github, in addition to the latest release.
closes https://github.com/official-stockfish/Stockfish/pull/4622
No functional change
2023-06-20 08:55:54 +02:00