mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
Update README.md
• reorder some sections of the README file • add reference to the AUTHORS file • rename Syzygybases to Syzygy tablebases • add pointer to the Discord channel • more precise info about the GPLv3 licence No functional change
This commit is contained in:
parent
40cb0f076a
commit
9f6d69c544
1 changed files with 36 additions and 32 deletions
68
README.md
68
README.md
|
@ -25,23 +25,14 @@ This distribution of Stockfish consists of the following files:
|
||||||
|
|
||||||
* Copying.txt, a text file containing the GNU General Public License version 3.
|
* Copying.txt, a text file containing the GNU General Public License version 3.
|
||||||
|
|
||||||
|
* AUTHORS, a text file with the list of authors for the project
|
||||||
|
|
||||||
* src, a subdirectory containing the full source code, including a Makefile
|
* src, a subdirectory containing the full source code, including a Makefile
|
||||||
that can be used to compile Stockfish on Unix-like systems.
|
that can be used to compile Stockfish on Unix-like systems.
|
||||||
|
|
||||||
* a file with the .nnue extension, storing the neural network for the NNUE
|
* a file with the .nnue extension, storing the neural network for the NNUE
|
||||||
evaluation. Binary distributions will have this file embedded.
|
evaluation. Binary distributions will have this file embedded.
|
||||||
|
|
||||||
Note: 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
|
|
||||||
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
|
|
||||||
```
|
|
||||||
https://tests.stockfishchess.org/api/nn/[filename]
|
|
||||||
```
|
|
||||||
replacing `[filename]` as needed.
|
|
||||||
|
|
||||||
|
|
||||||
## UCI options
|
## UCI options
|
||||||
|
|
||||||
Currently, Stockfish has the following UCI options:
|
Currently, Stockfish has the following UCI options:
|
||||||
|
@ -53,6 +44,9 @@ Currently, Stockfish has the following UCI options:
|
||||||
* #### Hash
|
* #### Hash
|
||||||
The size of the hash table in MB. It is recommended to set Hash after setting Threads.
|
The size of the hash table in MB. It is recommended to set Hash after setting Threads.
|
||||||
|
|
||||||
|
* #### Clear Hash
|
||||||
|
Clear the hash table.
|
||||||
|
|
||||||
* #### Ponder
|
* #### Ponder
|
||||||
Let Stockfish ponder its next move while the opponent is thinking.
|
Let Stockfish ponder its next move while the opponent is thinking.
|
||||||
|
|
||||||
|
@ -109,7 +103,7 @@ Currently, Stockfish has the following UCI options:
|
||||||
* #### SyzygyProbeDepth
|
* #### SyzygyProbeDepth
|
||||||
Minimum remaining search depth for which a position is probed. Set this option
|
Minimum remaining search depth for which a position is probed. Set this option
|
||||||
to a higher value to probe less aggressively if you experience too much slowdown
|
to a higher value to probe less aggressively if you experience too much slowdown
|
||||||
(in terms of nps) due to TB probing.
|
(in terms of nps) due to tablebase probing.
|
||||||
|
|
||||||
* #### Syzygy50MoveRule
|
* #### Syzygy50MoveRule
|
||||||
Disable to let fifty-move rule draws detected by Syzygy tablebase probes count
|
Disable to let fifty-move rule draws detected by Syzygy tablebase probes count
|
||||||
|
@ -139,13 +133,10 @@ Currently, Stockfish has the following UCI options:
|
||||||
Tells the engine to use nodes searched instead of wall time to account for
|
Tells the engine to use nodes searched instead of wall time to account for
|
||||||
elapsed time. Useful for engine testing.
|
elapsed time. Useful for engine testing.
|
||||||
|
|
||||||
* #### Clear Hash
|
|
||||||
Clear the hash table.
|
|
||||||
|
|
||||||
* #### Debug Log File
|
* #### Debug Log File
|
||||||
Write all communication to and from the engine into a text file.
|
Write all communication to and from the engine into a text file.
|
||||||
|
|
||||||
## A note on classical and NNUE evaluation
|
## A note on classical evaluation versus NNUE evaluation
|
||||||
|
|
||||||
Both approaches assign a value to a position that is used in alpha-beta (PVS) search
|
Both approaches assign a value to a position that is used in alpha-beta (PVS) search
|
||||||
to find the best move. The classical evaluation computes this value as a function
|
to find the best move. The classical evaluation computes this value as a function
|
||||||
|
@ -158,18 +149,29 @@ The NNUE evaluation was first introduced in shogi, and ported to Stockfish after
|
||||||
It can be evaluated efficiently on CPUs, and exploits the fact that only parts
|
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.
|
of the neural network need to be updated after a typical chess move.
|
||||||
[The nodchip repository](https://github.com/nodchip/Stockfish) provides additional
|
[The nodchip repository](https://github.com/nodchip/Stockfish) provides additional
|
||||||
tools to train and develop the NNUE networks.
|
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).
|
||||||
|
|
||||||
On CPUs supporting modern vector instructions (avx2 and similar), the NNUE evaluation
|
Notes:
|
||||||
results in stronger playing strength, even if the nodes per second computed by the engine
|
|
||||||
is somewhat lower (roughly 60% of nps is typical).
|
|
||||||
|
|
||||||
Note that the NNUE evaluation depends on the Stockfish binary and the network parameter
|
1) the NNUE evaluation depends on the Stockfish binary and the network parameter
|
||||||
file (see EvalFile). Not every parameter file is compatible with a given Stockfish binary.
|
file (see the EvalFile UCI option). Not every parameter file is compatible with a given
|
||||||
The default value of the EvalFile UCI option is the name of a network that is guaranteed
|
Stockfish binary, but the default value of the EvalFile UCI option is the name of a network
|
||||||
to be compatible with that binary.
|
that is guaranteed to be compatible with that binary.
|
||||||
|
|
||||||
## What to expect from Syzygybases?
|
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
|
||||||
|
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
|
||||||
|
```
|
||||||
|
https://tests.stockfishchess.org/api/nn/[filename]
|
||||||
|
```
|
||||||
|
replacing `[filename]` as needed.
|
||||||
|
|
||||||
|
## What to expect from the Syzygy tablebases?
|
||||||
|
|
||||||
If the engine is searching a position that is not in the tablebases (e.g.
|
If the engine is searching a position that is not in the tablebases (e.g.
|
||||||
a position with 8 pieces), it will access the tablebases during the search.
|
a position with 8 pieces), it will access the tablebases during the search.
|
||||||
|
@ -187,9 +189,9 @@ will not report a mate score, even if the position is known to be won.**
|
||||||
It is therefore clear that this behaviour is not identical to what one might
|
It is therefore clear that this behaviour is not identical to what one might
|
||||||
be used to with Nalimov tablebases. There are technical reasons for this
|
be used to with Nalimov tablebases. There are technical reasons for this
|
||||||
difference, the main technical reason being that Nalimov tablebases use the
|
difference, the main technical reason being that Nalimov tablebases use the
|
||||||
DTM metric (distance-to-mate), while Syzygybases use a variation of the
|
DTM metric (distance-to-mate), while the Syzygy tablebases use a variation of the
|
||||||
DTZ metric (distance-to-zero, zero meaning any move that resets the 50-move
|
DTZ metric (distance-to-zero, zero meaning any move that resets the 50-move
|
||||||
counter). This special metric is one of the reasons that Syzygybases are
|
counter). This special metric is one of the reasons that the Syzygy tablebases are
|
||||||
more compact than Nalimov tablebases, while still storing all information
|
more compact than Nalimov tablebases, while still storing all information
|
||||||
needed for optimal play and in addition being able to take into account
|
needed for optimal play and in addition being able to take into account
|
||||||
the 50-move rule.
|
the 50-move rule.
|
||||||
|
@ -272,8 +274,9 @@ generic rather than being focused on Stockfish's precise implementation.
|
||||||
Nevertheless, a helpful resource.
|
Nevertheless, a helpful resource.
|
||||||
|
|
||||||
* The latest source can always be found on [GitHub](https://github.com/official-stockfish/Stockfish).
|
* The latest source can always be found on [GitHub](https://github.com/official-stockfish/Stockfish).
|
||||||
Discussions about Stockfish take place in the [FishCooking](https://groups.google.com/forum/#!forum/fishcooking)
|
Discussions about Stockfish take place these days mainly in the [FishCooking](https://groups.google.com/forum/#!forum/fishcooking)
|
||||||
group and engine testing is done on [Fishtest](https://tests.stockfishchess.org/tests).
|
group and on the [Stockfish Discord channel](https://discord.gg/nv8gDtt).
|
||||||
|
The engine testing is done on [Fishtest](https://tests.stockfishchess.org/tests).
|
||||||
If you want to help improve Stockfish, please read this [guideline](https://github.com/glinscott/fishtest/wiki/Creating-my-first-test)
|
If you want to help improve Stockfish, please read this [guideline](https://github.com/glinscott/fishtest/wiki/Creating-my-first-test)
|
||||||
first, where the basics of Stockfish development are explained.
|
first, where the basics of Stockfish development are explained.
|
||||||
|
|
||||||
|
@ -288,9 +291,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.
|
using it as the starting point for a software project of your own.
|
||||||
|
|
||||||
The only real limitation is that whenever you distribute Stockfish in
|
The only real limitation is that whenever you distribute Stockfish in
|
||||||
some way, you must always include the full source code, or a pointer
|
some way, you MUST always include the full source code, or a pointer
|
||||||
to where the source code can be found. If you make any changes to the
|
to where the source code can be found, to generate the exact binary
|
||||||
source code, these changes must also be made available under the GPL.
|
you are distributing. If you make any changes to the source code,
|
||||||
|
these changes must also be made available under the GPL.
|
||||||
|
|
||||||
For full details, read the copy of the GPL v3 found in the file named
|
For full details, read the copy of the GPL v3 found in the file named
|
||||||
*Copying.txt*.
|
*Copying.txt*.
|
||||||
|
|
Loading…
Add table
Reference in a new issue