X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=Readme.md;h=abe8226f27631e5648074731b2c73a9e11ec184a;hp=9fd242de72d760cf4cf4c15b05897a35d2d50125;hb=07e0741dfbca07097f38e46f3f7752b48675a515;hpb=57b6df4874228ef6f0fc4d9b98e1db15b57000cf diff --git a/Readme.md b/Readme.md index 9fd242de..abe8226f 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,7 @@ ### Overview +[![Build Status](https://travis-ci.org/official-stockfish/Stockfish.svg?branch=master)](https://travis-ci.org/official-stockfish/Stockfish) + Stockfish is a free UCI chess engine derived from Glaurung 2.1. It is not a complete chess program and requires some UCI-compatible GUI (e.g. XBoard with PolyGlot, eboard, Arena, Sigma Chess, Shredder, Chess @@ -7,14 +9,12 @@ Partner or Fritz) in order to be used comfortably. Read the documentation for your GUI of choice for information about how to use Stockfish with it. -This version of Stockfish supports up to 64 CPUs, but has not been -tested thoroughly with more than 4. The program tries to detect the -number of CPUs on your computer and sets the number of search threads -accordingly, but please be aware that the detection is not always -correct. It is therefore recommended to inspect the value of the -*Threads* UCI parameter, and to make sure it equals the number of CPU -cores on your computer. If you are using more than eight threads, it is -recommended to raise the value of the *Min Split Depth* UCI parameter to 7. +This version of Stockfish supports up to 128 cores. The engine defaults +to one search thread, so it is therefore recommended to inspect the value of +the *Threads* UCI parameter, and to make sure it equals the number of CPU +cores on your computer. + +This version of Stockfish has support for Syzygybases. ### Files @@ -25,20 +25,60 @@ This distribution of Stockfish consists of the following files: * Copying.txt, a text file containing the GNU General Public License. - * src/, a subdirectory containing the full source code, including a Makefile - that can be used to compile Stockfish on Unix-like systems. For further - information about how to compile Stockfish yourself read section below. + * src, a subdirectory containing the full source code, including a Makefile + that can be used to compile Stockfish on Unix-like systems. + + +### Syzygybases + +**Configuration** + +Syzygybases are configured using the UCI options "SyzygyPath", +"SyzygyProbeDepth", "Syzygy50MoveRule" and "SyzygyProbeLimit". + +The option "SyzygyPath" should be set to the directory or directories that +contain the .rtbw and .rtbz files. Multiple directories should be +separated by ";" on Windows and by ":" on Unix-based operating systems. +**Do not use spaces around the ";" or ":".** + +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. + +Increasing the "SyzygyProbeDepth" option lets the engine probe less +aggressively. Set this option to a higher value if you experience too much +slowdown (in terms of nps) due to TB probing. + +Set the "Syzygy50MoveRule" option to false if you want tablebase positions +that are drawn by the 50-move rule to count as win or loss. This may be useful +for correspondence games (because of tablebase adjudication). - * polyglot.ini, for using Stockfish with Fabien Letouzey's PolyGlot - adapter. +The "SyzygyProbeLimit" option should normally be left at its default value. +**What to expect** +If the engine is searching a position that is not in the tablebases (e.g. +a position with 7 pieces), it will access the tablebases during the search. +If the engine reports a very large score (typically 123.xx), this means +that it has found a winning line into a tablebase position. -### Opening books +If the engine is given a position to search that is in the tablebases, it +will use the tablebases at the beginning of the search to preselect all +good moves, i.e. all moves that preserve the win or preserve the draw while +taking into account the 50-move rule. +It will then perform a search only on those moves. **The engine will not move +immediately**, unless there is only a single good move. **The engine likely +will not report a mate score even if the position is known to be won.** -This version of Stockfish has support for PolyGlot opening books. For -information about how to create such books, consult the PolyGlot -documentation. The book file can be selected by setting the *Book File* -UCI parameter. +It is therefore clear that behaviour is not identical to what one might +be used to with Nalimov tablebases. There are technical reasons for this +difference, the main technical reason being that Nalimov tablebases use the +DTM metric (distance-to-mate), while Syzygybases use a variation of the +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 +more compact than Nalimov tablebases, while still storing all information +needed for optimal play and in addition being able to take into account +the 50-move rule. ### Compiling it yourself @@ -50,7 +90,7 @@ Stockfish has support for 32 or 64-bit CPUs, the hardware POPCNT instruction, big-endian machines such as Power PC, and other platforms. In general it is recommended to run `make help` to see a list of make -targets with corresponding descriptions. When not using Makefile to +targets with corresponding descriptions. When not using the Makefile to compile (for instance with Microsoft MSVC) you need to manually set/unset some switches in the compiler command line; see file *types.h* for a quick reference.