Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tools] Merge branch 'upstream/master' (4c7de9e8abd8d5dc71d0c85dddd75a7b244600d7) into tools #4040

Merged
merged 182 commits into from
May 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
f10ebc2
Regenerate dependencies on code change
vondele Aug 15, 2021
1946a67
Update default net to nn-ac5605a608d6.nnue
Torom Aug 18, 2021
ccf0239
Improve handling of the debug log file.
Sopel97 Aug 13, 2021
18dcf1f
Optimize and tidy up affine transform code.
Sopel97 Aug 16, 2021
e57d2d9
Simplify Null Move Search Reduction
BM123499 Jun 7, 2021
939ffe4
do more LMR extensions for PV nodes
candirufish Aug 20, 2021
590447d
Update default net to nn-517c4f68b5df.nnue
SFisGOD Aug 20, 2021
d754ea5
Simplify Declaration on Pawn Move Generation
BM123499 Aug 21, 2021
af0d827
Fix empty EvalFile option
vondele Aug 26, 2021
f30f231
Use "pedantic" flag also for mingw
ppigazzini Aug 22, 2021
69eede7
Update default net to nn-33495fe25081.nnue
SFisGOD Aug 26, 2021
ad357e1
CMH Pruning Tweak
VoyagerOne Aug 27, 2021
2807dcf
Update default net to nn-735bba95dec0.nnue
SFisGOD Aug 29, 2021
e404a7d
Extend captures and promotions
Vizvezdenec Sep 5, 2021
be63ce1
Update default net to nn-6762d36ad265.nnue
SFisGOD Sep 5, 2021
c31fc8d
Improve history updates
locutus2 Sep 6, 2021
b7b6b4b
Further improve history updates
locutus2 Sep 7, 2021
30fdbf4
Decrease depth for cutnodes with no tt move
Vizvezdenec Sep 10, 2021
fd5e779
Update 2 search parameters after tune.
Sep 12, 2021
723f48d
Update default net to nn-13406b1dcbe0.nnue
SFisGOD Sep 13, 2021
5b47b4e
Increase optimumTime by 10%
Sep 16, 2021
e8788d1
Combo of various parameter tweaks
Vizvezdenec Sep 20, 2021
73018a0
Detect search explosions
snicolet Sep 23, 2021
ff3fa0c
Tweak doubly singular condition (Topo's patch)
snicolet Sep 23, 2021
00e34a7
Range reductions
OfekShochat Sep 23, 2021
919da65
Reduction instead of cutoff
snicolet Sep 25, 2021
21ad356
Extend quiet tt moves at PvNodes
Vizvezdenec Sep 26, 2021
135caee
Increase reductions with thread count
Vizvezdenec Oct 3, 2021
371b522
Time-management fix in MultiPV mode.
joergoster Oct 5, 2021
329bdbd
Improve the Chess960 correction for cornered bishops
vondele Oct 5, 2021
54a9899
Capping stat bonus at 2000
snicolet Oct 4, 2021
f21a66f
Small clean-up, Sept 2021
May 27, 2021
c8459b1
Reduce more if multiple moves exceed alpha
Vizvezdenec Oct 8, 2021
6738413
Simplify multi-cut condition
jhellis3 Oct 13, 2021
0bddd94
Simplify ttHitAverage away
BM123499 Oct 14, 2021
580698e
Compute ttCapture earlier
vondele Oct 6, 2021
4231d99
Smooth improving
Stefano80 Oct 14, 2021
6847be2
Allow some LMR double extensions
snicolet Oct 17, 2021
8a74c08
Remove noLMRExtension flag
snicolet Oct 17, 2021
f749496
Reformat Eval::evaluate()
Stefano80 Oct 17, 2021
67d0616
Simplify probCutCount away
BM123499 Oct 18, 2021
b37054c
Simplify evaluate condition on search
BM123499 Oct 19, 2021
4af1ae8
Adjust TTdepth acceptance on early cutoff
BM123499 Oct 19, 2021
42a895d
Simplify null move search condition
BM123499 Oct 20, 2021
8a8640a
Double extend more often via LMR
locutus2 Oct 21, 2021
644f6d4
Simplify away ValueListInserter
Oct 19, 2021
2214fce
Rewrite NNUE evaluation adjustments
Stefano80 Oct 19, 2021
927a84d
Increase TTdepth acceptance some Threads
BM123499 Oct 22, 2021
fc8213c
Tuning of a Null Move Parameter
FauziAkram Oct 22, 2021
1163d97
Simplify LMR multiThread condition
BM123499 Oct 23, 2021
8557f35
Double extend search even more via LMR
locutus2 Oct 24, 2021
2c86ae1
Adjust ButterflyHistory decay parameter
vondele Oct 23, 2021
385deef
Fix sometimes incorrect key for prefetches
Oct 23, 2021
7262fd5
Stockfish 14.1
vondele Oct 27, 2021
717d6c5
Widen the aspiration window for larger evals
vondele Oct 29, 2021
a8330d5
Do more deeper LMR searches.
locutus2 Oct 31, 2021
0e89d6e
Do not output to stderr during the build.
vdbergh Oct 31, 2021
ef4822a
Simplify Skill implementation
Oct 10, 2021
5a223af
Restore development version
vondele Nov 1, 2021
11c6cf7
More futility pruning
lonfom169 Oct 27, 2021
c2b9134
Do more reductions at Pv nodes with low delta
Vizvezdenec Nov 4, 2021
45e5e65
do not store qsearch positions in TT as exact.
vondele Nov 1, 2021
a0259d8
Tweak initial aspiration window.
locutus2 Nov 5, 2021
7b278aa
Reduce use of lazyEval
vondele Nov 7, 2021
c4a1390
Simplify away the Reverse Move penalty
BM123499 Nov 8, 2021
1a5c21d
Tune a few NNUE related scaling parameters
vondele Nov 7, 2021
9048ac0
Fix processor group binding under Windows.
noobpwnftw Nov 12, 2021
f5df517
Simplify Pv nodes related logic in LMR
Vizvezdenec Nov 14, 2021
a5a89b2
Introduce Optimism
snicolet Nov 19, 2021
a943b1d
Remove appveyor CI
vondele Nov 21, 2021
7218ec4
Revert and fix earlier windows NUMA patch
noobpwnftw Nov 20, 2021
092b27a
Less futility pruning.
locutus2 Nov 23, 2021
0ac8aca
Use fraction of history heuristics in futility pruning
Vizvezdenec Nov 25, 2021
9ee58dc
Update default net to nn-3678835b1d3d.nnue
vondele Nov 24, 2021
4bb11e8
Tune NNUE scaling params
vondele Nov 26, 2021
8bb5a43
Adjust usage of history in futility pruning
Vizvezdenec Nov 27, 2021
af050e5
Refine futility pruning for parent nodes
Vizvezdenec Nov 28, 2021
e4a0c6c
Update default net to nn-4f56ecfca5b7.nnue
vondele Nov 28, 2021
ca3c1c5
Enable compilation on older Windows systems
noobpwnftw Nov 30, 2021
282644f
Remove depth dependence and use same limit (2000) as stat_bonus
Nov 26, 2021
64f21ec
Small clean-up
Hengyu Nov 26, 2021
4b86ef8
Fix typos in comments, adjust readme
michaelortmann Nov 30, 2021
95a2ac1
Simplify reduction on rootNode when bestMoveChanges is high
BM123499 Nov 29, 2021
c1f9a35
Correctly reset bestMoveChanges
BM123499 Nov 29, 2021
c9977aa
Add AVX-VNNI support for Alder Lake and later.
gcp Dec 1, 2021
e4b7403
Do more aggressive pruning for some node types
Vizvezdenec Dec 2, 2021
3270602
Update default net to nn-cdf1785602d6.nnue
vondele Dec 2, 2021
a6a9d82
Simplifies bestMoveChanges from LMR
BM123499 Dec 4, 2021
18f2b12
Tweak time management
locutus2 Dec 5, 2021
7d44b43
Tweak history initialization
locutus2 Dec 5, 2021
a3d425c
Assign extra bonus for previous move that caused a fail low more often
Vizvezdenec Dec 6, 2021
b82d93e
Update default net to nn-63376713ba63.nnue.
vondele Dec 4, 2021
4766dfc
Optimize FT activation and affine transform for NEON.
Sopel97 Dec 2, 2021
c228f31
Introduce post-lmr extensions
Vizvezdenec Dec 7, 2021
9451419
Improve transposition table remplacement strategy
locutus2 Dec 8, 2021
8e82345
Adjust singular extension depth restriction
Vizvezdenec Dec 9, 2021
9db6ca8
Update Top CPU Contributors
vondele Dec 11, 2021
d579db3
Simplify falling eval time factor.
locutus2 Dec 10, 2021
ea1ddb6
Update default net to nn-d93927199b3d.nnue
vondele Dec 12, 2021
c6edf33
Remove NNUE scaling term
vondele Dec 7, 2021
3bea736
Update default net to nn-4401e826ebcc.nnue
mbabigian Dec 16, 2021
0889210
Simplify away singularQuietLMR
BM123499 Dec 14, 2021
dc5d9bd
Remove lowPly history
Dec 15, 2021
939b694
Fix for profile-build failure using gcc on MacOS
gsobala Dec 13, 2021
0a318cd
Adjust reductions based on current node delta and root delta
Vizvezdenec Dec 18, 2021
fb7d3ab
Reintroduce futility pruning for captures
Vizvezdenec Dec 18, 2021
ca51b45
Fixes build failure on Apple M1 Silicon
gsobala Dec 13, 2021
74776db
Simplification in evaluate_nnue.cpp
snicolet Dec 19, 2021
2c30956
Remove Capture Extension
BM123499 Dec 18, 2021
22e92d2
Remove Capture history pruning
BM123499 Dec 20, 2021
88f17a8
Update Elo estimates for terms in search
BM123499 Dec 20, 2021
0a61680
Fall back to NNUE if classical evaluation is much lower than threshold
Vizvezdenec Dec 22, 2021
7d82f0d
Update default net to nn-ac07bd334b62.nnue
vondele Dec 17, 2021
93b14a1
Don't direct prune a move if it's a retake
BM123499 Dec 25, 2021
1066119
Tweak optimism with complexity
snicolet Dec 30, 2021
061f98a
Smooth out doDeeperSearch
lonfom169 Dec 31, 2021
0b41887
Simplify away rangeReduction
lonfom169 Jan 1, 2022
ad926d3
Update copyright years
bknox83 Jan 4, 2022
2efda17
Update AUTHORS and CPU contributors files
snicolet Jan 7, 2022
9ad0ea7
Tune a few parameters related to evaluation
vondele Jan 6, 2022
c5a280c
Tune FRC trapped Bishop patch
vondele Jan 7, 2022
44b1ba8
Adjust pruning constants
Vizvezdenec Jan 10, 2022
c5d45d3
Fix Makefile for compilation with clang on Windows
pschneider1968 Dec 27, 2021
7678d63
Use complexity in search
ruicoelhopedro Jan 13, 2022
d11101e
Improve logic on mingw
proukornew Dec 16, 2021
2b03723
Use average complexity for time management
ruicoelhopedro Jan 17, 2022
48bf1a3
Add msys2 Clang x86_64 to GitHub Action matrix
ppigazzini Jan 19, 2022
6706263
Improve Makefile for Windows native builds
ppigazzini Jan 17, 2022
77cf570
Revert -flto=auto on mingw
vondele Jan 20, 2022
9083050
Simplify limiting extensions.
joergoster Jan 15, 2022
bddd38c
Fix Makefile for Android NDK cross-compile
pschneider1968 Jan 21, 2022
8b4afcf
Scale child node futility pruning with previous move history.
Vizvezdenec Jan 24, 2022
90d0519
Do stats updates after LMR for captures
Vizvezdenec Jan 29, 2022
50200de
Cleanup and update CPU contributors
Vizvezdenec Jan 31, 2022
e178a09
Drop sse from target "x86-32"
ppigazzini Jan 31, 2022
95d7369
Introduce movecount pruning for quiet check evasions in qsearch
Vizvezdenec Feb 4, 2022
4d3950c
Reintroduce razoring
Vizvezdenec Feb 5, 2022
08ac4e9
Do less depth reduction in null move pruning for complex positions
Vizvezdenec Feb 7, 2022
b0b3155
Big search tuning
Vizvezdenec Feb 9, 2022
cb9c259
Update architecture to "SFNNv4". Update network to nn-6877cd24400e.nnue.
Sopel97 Nov 27, 2021
3ec6e1d
Big search tuning (version 2)
Vizvezdenec Feb 12, 2022
84b1940
Tune search at very long time control
Vizvezdenec Feb 17, 2022
2da1d1b
Add ARM NDK to Github Actions matrix
ppigazzini Feb 6, 2022
abef3e8
Fix clang warning on unused variable
vondele Feb 20, 2022
27139de
Adjust usage of LMR for 2nd move in move ordering
Vizvezdenec Feb 19, 2022
5f781d3
Clean up and simplify some nnue code.
Feb 24, 2022
174b038
Use dynamic allocation for evaluation scratch TLS buffer.
Sopel97 Feb 27, 2022
4ac7d72
Sort captures
G-Lorenz Mar 1, 2022
270a0e7
Generalize the feature transform to use vec_t macros
Chaneybenjamini Mar 1, 2022
eae0f8d
Decrease reductions in Lmr for some Pv nodes
Vizvezdenec Mar 8, 2022
45f2416
Improvements in Evaluation
FauziAkram Mar 9, 2022
004ea2c
Small cleanups
G-Lorenz Feb 5, 2022
f3a2296
Small cleanups (2)
Mar 12, 2022
e31f97e
Remove ttPv tree shrinking.
locutus2 Mar 15, 2022
910cf8b
Remove pos.capture_or_promotion()
G-Lorenz Mar 23, 2022
08e0f52
In movepicker increase priority for moves that evade a capture
Vizvezdenec Mar 28, 2022
471d930
Play more positional in endgames
TopoIogist Mar 28, 2022
9f6bcb3
Minor cleanups
Mar 31, 2022
19a90b4
Use NNUE in low piece endgames close to the root.
TopoIogist Apr 9, 2022
319af5c
Update CPU contributors
vondele Apr 14, 2022
c3b67fa
Update WDL model for current SF
vondele Apr 15, 2022
c25d4c4
Tuning classical and NNUE scaling terms
FauziAkram Apr 12, 2022
df2f7e7
Decrease LMR at PV nodes with low depth.
Apr 15, 2022
e6e324e
Stockfish 15
vondele Apr 18, 2022
c4db7fd
Restore development version
vondele Apr 18, 2022
6e0680e
Update default net to nn-d0b74ce1e5eb.nnue
vondele Apr 18, 2022
e41f727
Simplify away best move count logic
Vizvezdenec Apr 21, 2022
e1f12aa
Negative extension for ttMove that is less than alpha and value
candirufish Apr 22, 2022
285a79e
Simplify time management.
locutus2 Apr 27, 2022
a32d208
Use fail high count for LMR
candirufish May 3, 2022
9eb7b60
Reduce depth after score improvement at PV nodes
snicolet May 4, 2022
c079acc
Update NNUE architecture to SFNNv5. Update network to nn-3c0aa92af1da…
Sopel97 May 13, 2022
5372f81
SE depth scaling using the previous depth
Disservin May 14, 2022
22b7909
Tune scale and optimism.
May 15, 2022
cc7bcd5
Simplify a condition
candirufish May 21, 2022
f7d1491
Assorted small cleanups
G-Lorenz Apr 1, 2022
48df075
Add command line flags to link to information
vondele May 20, 2022
1a16820
Small speedup in futility_move_count
G-Lorenz May 22, 2022
6ede1be
Improve handling of variables set in the make environment
proukornew Dec 16, 2021
4c7de9e
Adjust scale param higher
May 19, 2022
f710dc9
Merge branch 'upstream/master' (4c7de9e8abd8d5dc71d0c85dddd75a7b24460…
Sopel97 May 30, 2022
e87358c
Narrow down CI to the most important subset.
Sopel97 May 30, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 10 additions & 26 deletions .github/workflows/stockfish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
- master
- tools
- github_ci
- github_ci_armv7
pull_request:
branches:
- master
Expand All @@ -19,13 +20,16 @@ jobs:
strategy:
matrix:
config:
# set the variable for the required tests:
# run_expensive_tests: true
# run_32bit_tests: true
# run_64bit_tests: true
- {
name: "Ubuntu 20.04 GCC",
os: ubuntu-20.04,
compiler: g++,
comp: gcc,
run_expensive_tests: true,
run_32bit_tests: true,
run_64bit_tests: true,
shell: 'bash {0}'
}
Expand All @@ -34,8 +38,6 @@ jobs:
os: ubuntu-20.04,
compiler: clang++,
comp: clang,
run_expensive_tests: false,
run_32bit_tests: true,
run_64bit_tests: true,
shell: 'bash {0}'
}
Expand All @@ -44,8 +46,6 @@ jobs:
os: macos-10.15,
compiler: clang++,
comp: clang,
run_expensive_tests: false,
run_32bit_tests: false,
run_64bit_tests: true,
shell: 'bash {0}'
}
Expand All @@ -54,33 +54,17 @@ jobs:
os: macos-10.15,
compiler: g++-10,
comp: gcc,
run_expensive_tests: false,
run_32bit_tests: false,
run_64bit_tests: true,
shell: 'bash {0}'
}
- {
name: "Windows 2019 Mingw-w64 GCC x86_64",
os: windows-2019,
name: "Windows 2022 Mingw-w64 GCC x86_64",
os: windows-2022,
compiler: g++,
comp: gcc,
run_expensive_tests: false,
run_32bit_tests: false,
comp: mingw,
run_64bit_tests: true,
msys_sys: 'mingw64',
msys_env: 'x86_64',
shell: 'msys2 {0}'
}
- {
name: "Windows 2019 Mingw-w64 GCC i686",
os: windows-2019,
compiler: g++,
comp: gcc,
run_expensive_tests: false,
run_32bit_tests: true,
run_64bit_tests: false,
msys_sys: 'mingw32',
msys_env: 'i686',
msys_env: 'x86_64-gcc',
shell: 'msys2 {0}'
}

Expand All @@ -104,7 +88,7 @@ jobs:
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.config.msys_sys}}
install: mingw-w64-${{matrix.config.msys_env}}-gcc make git expect
install: mingw-w64-${{matrix.config.msys_env}} make git expect

- name: Download the used network from the fishtest framework
run: |
Expand Down
13 changes: 12 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# List of authors for Stockfish, as of June 14, 2021
# List of authors for Stockfish

# Founders of the Stockfish project and fishtest infrastructure
Tord Romstad (romstad)
Expand All @@ -21,6 +21,7 @@ Alexander Kure
Alexander Pagel (Lolligerhans)
Alfredo Menezes (lonfom169)
Ali AlZhrani (Cooffe)
Andrei Vetrov (proukornew)
Andrew Grant (AndyGrant)
Andrey Neporada (nepal)
Andy Duplain
Expand All @@ -30,6 +31,7 @@ Arjun Temurnikar
Artem Solopiy (EntityFX)
Auguste Pop
Balint Pfliegel
Ben Chaney (Chaneybenjamini)
Ben Koshy (BKSpurgeon)
Bill Henry (VoyagerOne)
Bojun Guo (noobpwnftw, Nooby)
Expand All @@ -53,6 +55,7 @@ DiscanX
Dominik Schlösser (domschl)
double-beep
Douglas Matos Gomes (dsmsgms)
Dubslow
Eduardo Cáceres (eduherminio)
Eelco de Groot (KingDefender)
Elvin Liu (solarlight2)
Expand Down Expand Up @@ -102,6 +105,7 @@ jundery
Justin Blanchard (UncombedCoconut)
Kelly Wilson
Ken Takusagawa
Kian E (KJE-98)
kinderchocolate
Kiran Panditrao (Krgp)
Kojirion
Expand All @@ -122,6 +126,7 @@ marotear
Matt Ginsberg (mattginsberg)
Matthew Lai (matthewlai)
Matthew Sullivan (Matt14916)
Max A. (Disservin)
Maxim Molchanov (Maxim)
Michael An (man)
Michael Byrne (MichaelB7)
Expand All @@ -131,6 +136,7 @@ Michael Whiteley (protonspring)
Michel Van den Bergh (vdbergh)
Miguel Lahoz (miguel-l)
Mikael Bäckman (mbootsector)
Mike Babigian (Farseer)
Mira
Miroslav Fontán (Hexik)
Moez Jellouli (MJZ1977)
Expand All @@ -143,6 +149,7 @@ Nikolay Kostov (NikolayIT)
Nguyen Pham (nguyenpham)
Norman Schmidt (FireFather)
notruck
Ofek Shochat (OfekShochat, ghostway)
Ondrej Mosnáček (WOnder93)
Oskar Werkelin Ahlin
Pablo Vazquez
Expand All @@ -151,6 +158,7 @@ Pascal Romaret
Pasquale Pigazzini (ppigazzini)
Patrick Jansen (mibere)
pellanda
Peter Schneider (pschneider1968)
Peter Zsifkovits (CoffeeOne)
Praveen Kumar Tummala (praveentml)
Rahul Dsilva (silversolver1)
Expand All @@ -163,6 +171,7 @@ Rodrigo Exterckötter Tjäder
Ron Britvich (Britvich)
Ronald de Man (syzygy1, syzygy)
rqs
Rui Coelho (ruicoelhopedro)
Ryan Schmitt
Ryan Takker
Sami Kiminki (skiminki)
Expand All @@ -186,11 +195,13 @@ Tom Truscott
Tom Vijlbrief (tomtor)
Tomasz Sobczyk (Sopel97)
Torsten Franz (torfranz, tfranzer)
Torsten Hellwig (Torom)
Tracey Emery (basepr1me)
tttak
Unai Corzo (unaiic)
Uri Blass (uriblass)
Vince Negri (cuddlestmonkey)
xefoci7612
zz4032


Expand Down
75 changes: 42 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
## Overview

[![Build Status](https://github.com/official-stockfish/Stockfish/actions/workflows/stockfish.yml/badge.svg)](https://github.com/official-stockfish/Stockfish/actions)
[![Build Status](https://ci.appveyor.com/api/projects/status/github/official-stockfish/Stockfish?branch=master&svg=true)](https://ci.appveyor.com/project/mcostalba/stockfish/branch/master)

[Stockfish](https://stockfishchess.org) is a free, powerful UCI chess engine
derived from Glaurung 2.1. Stockfish is not a complete chess program and requires a
Expand All @@ -10,24 +9,28 @@ Cute Chess, eboard, Arena, Sigma Chess, Shredder, Chess Partner or Fritz) in ord
to be used comfortably. Read the documentation for your GUI of choice for information
about how to use Stockfish with it.

The Stockfish engine features two evaluation functions for chess, the classical
evaluation based on handcrafted terms, and the NNUE evaluation based on efficiently
updatable neural networks. The classical evaluation runs efficiently on almost all
CPU architectures, while the NNUE evaluation benefits from the vector
intrinsics available on most CPUs (sse2, avx2, neon, or similar).

The Stockfish engine features two evaluation functions for chess. The efficiently
updatable neural network (NNUE) based evaluation is the default and by far the strongest.
The classical evaluation based on handcrafted terms remains available. The strongest
network is integrated in the binary and downloaded automatically during the build process.
The NNUE evaluation benefits from the vector intrinsics available on most CPUs (sse2,
avx2, neon, or similar).

## Files

This distribution of Stockfish consists of the following files:

* [Readme.md](https://github.com/official-stockfish/Stockfish/blob/master/README.md), the file you are currently reading.
* [README.md](https://github.com/official-stockfish/Stockfish/blob/master/README.md),
the file you are currently reading.

* [Copying.txt](https://github.com/official-stockfish/Stockfish/blob/master/Copying.txt), a text file containing the GNU General Public License version 3.
* [Copying.txt](https://github.com/official-stockfish/Stockfish/blob/master/Copying.txt),
a text file containing the GNU General Public License version 3.

* [AUTHORS](https://github.com/official-stockfish/Stockfish/blob/master/AUTHORS), a text file with the list of authors for the project
* [AUTHORS](https://github.com/official-stockfish/Stockfish/blob/master/AUTHORS),
a text file with the list of authors for the project

* [src](https://github.com/official-stockfish/Stockfish/tree/master/src), a subdirectory containing the full source code, including a Makefile
* [src](https://github.com/official-stockfish/Stockfish/tree/master/src),
a subdirectory containing the full source code, including a Makefile
that can be used to compile Stockfish on Unix-like systems.

* a file with the .nnue extension, storing the neural network for the NNUE
Expand All @@ -37,7 +40,7 @@ This distribution of Stockfish consists of the following files:

The Universal Chess Interface (UCI) is a standard protocol used to communicate with
a chess engine, and is the recommended way to do so for typical graphical user interfaces
(GUI) or chess tools. Stockfish implements the majority of it options as described
(GUI) or chess tools. Stockfish implements the majority of its options as described
in [the UCI protocol](https://www.shredderchess.com/download/div/uci.zip).

Developers can see the default values for UCI options available in Stockfish by typing
Expand Down Expand Up @@ -68,9 +71,9 @@ change them via a chess GUI. This is a list of available UCI options in Stockfis

* #### EvalFile
The name of the file of the NNUE evaluation parameters. Depending on the GUI the
filename might have to include the full path to the folder/directory that contains the file.
Other locations, such as the directory that contains the binary and the working directory,
are also searched.
filename might have to include the full path to the folder/directory that contains
the file. Other locations, such as the directory that contains the binary and the
working directory, are also searched.

* #### UCI_AnalyseMode
An option handled by your GUI.
Expand Down Expand Up @@ -103,7 +106,7 @@ change them via a chess GUI. This is a list of available UCI options in Stockfis
Example: `C:\tablebases\wdl345;C:\tablebases\wdl6;D:\tablebases\dtz345;D:\tablebases\dtz6`

It is recommended to store .rtbw files on an SSD. There is no loss in storing
the .rtbz files on a regular HD. It is recommended to verify all md5 checksums
the .rtbz files on a regular HDD. It is recommended to verify all md5 checksums
of the downloaded tablebase files (`md5sum -c checksum.md5`) as corruption will
lead to engine crashes.

Expand Down Expand Up @@ -138,8 +141,9 @@ change them via a chess GUI. This is a list of available UCI options in Stockfis
For developers the following non-standard commands might be of interest, mainly useful for debugging:

* #### bench *ttSize threads limit fenFile limitType evalType*
Performs a standard benchmark using various options. The signature of a version (standard node
count) is obtained using all defaults. `bench` is currently `bench 16 1 13 default depth mixed`.
Performs a standard benchmark using various options. The signature of a version
(standard node count) is obtained using all defaults. `bench` is currently
`bench 16 1 13 default depth mixed`.

* #### compiler
Give information about the compiler and environment used for building a binary.
Expand Down Expand Up @@ -210,22 +214,27 @@ on the evaluations of millions of positions at moderate search depth.
The NNUE evaluation was first introduced in shogi, and ported to Stockfish afterward.
It can be evaluated efficiently on CPUs, and exploits the fact that only parts
of the neural network need to be updated after a typical chess move.
[The nodchip repository](https://github.com/nodchip/Stockfish) provides additional
tools to train and develop the NNUE networks. On CPUs supporting modern vector instructions
(avx2 and similar), the NNUE evaluation results in much stronger playing strength, even
if the nodes per second computed by the engine is somewhat lower (roughly 80% of nps
is typical).
[The nodchip repository](https://github.com/nodchip/Stockfish) provided the first
version of the needed tools to train and develop the NNUE networks. Today, more
advanced training tools are available in
[the nnue-pytorch repository](https://github.com/glinscott/nnue-pytorch/),
while data generation tools are available in
[a dedicated branch](https://github.com/official-stockfish/Stockfish/tree/tools).

On CPUs supporting modern vector instructions (avx2 and similar), the NNUE evaluation
results in much stronger playing strength, even if the nodes per second computed by
the engine is somewhat lower (roughly 80% of nps is typical).

Notes:

1) the NNUE evaluation depends on the Stockfish binary and the network parameter
file (see the EvalFile UCI option). Not every parameter file is compatible with a given
Stockfish binary, but the default value of the EvalFile UCI option is the name of a network
that is guaranteed to be compatible with that binary.
1) the NNUE evaluation depends on the Stockfish binary and the network parameter file
(see the EvalFile UCI option). Not every parameter file is compatible with a given
Stockfish binary, but the default value of the EvalFile UCI option is the name of a
network that is guaranteed to be compatible with that binary.

2) to use the NNUE evaluation, the additional data file with neural network parameters
needs to be available. Normally, this file is already embedded in the binary or it
can be downloaded. The filename for the default (recommended) net can be found as the default
needs to be available. Normally, this file is already embedded in the binary or it can
be downloaded. The filename for the default (recommended) net can be found as the default
value of the `EvalFile` UCI option, with the format `nn-[SHA256 first 12 digits].nnue`
(for instance, `nn-c157e0a5755b.nnue`). This file can be downloaded from
```
Expand Down Expand Up @@ -353,10 +362,10 @@ it (either by itself or as part of some bigger software package), or
using it as the starting point for a software project of your own.

The only real limitation is that whenever you distribute Stockfish in
some way, you MUST always include the full source code, or a pointer
to where the source code can be found, to generate the exact binary
you are distributing. If you make any changes to the source code,
these changes must also be made available under the GPL.
some way, you MUST always include the license and the full source code
(or a pointer to where the source code can be found) to generate the
exact binary you are distributing. If you make any changes to the
source code, these changes must also be made available under the GPL v3.

For full details, read the copy of the GPL v3 found in the file named
[*Copying.txt*](https://github.com/official-stockfish/Stockfish/blob/master/Copying.txt).
Loading