CrazyAra 0.7.0
Notes
This is the first release after applying reinforcement learning to crazyhouse.
The release is mainly intended to be able to reproduce CrazyAra's moves from the 100 games between Multi-Variant-Stockfish (2019-12-03) and CrazyAra 0.7.0. All UCI-options for all binaries are set to the same defaults as in:
The neural network (see available models) should be downloaded separately and be put in the model
directory.
Speed improvements
- TensorRT support was added and is currently supported in the Linux release.
TensorRT results in about 2x higher NPS for model RISEv2 compared to the default CUDA/cuDNN backend.
Known issues
-
Long start-up times
- Loading model RISEv2 results in a long (~15-20s) constant start-up time on GPU due to inference optimization (MXNet #16173). The start-up time increases for higher batch-sizes and when TensorRT is enabled. If the default maximum start-up time for external GUIs (e.g. cutechess) is not increased, it can happen that the GUI kills the CrazyAra process because of not responding in time.
-
High memory consumption
- The memory consumption linearly increases over time and becomes relatively high (> 20 GB RAM) for more than 1 million nodes because the chess board position is currently stored in every node. As an intermediate solution, the UCI-Option
Nodes
can be used to define a maximum number of nodes for your system combined withAllow_Early_Stopping=true
.
- The memory consumption linearly increases over time and becomes relatively high (> 20 GB RAM) for more than 1 million nodes because the chess board position is currently stored in every node. As an intermediate solution, the UCI-Option
Miscellaneous
- Reinforcement learning functionality was disabled for all binaries but can be enabled using cmake with
-DUSE_RL=1
. For convenient installation it is recommend to use the Dockerfile installation:- https://github.com/QueensGambit/CrazyAra/tree/master/engine/src/rl
Note: NVIDIA-docker only runs on Linux systems (nvidia-docker #665).
- https://github.com/QueensGambit/CrazyAra/tree/master/engine/src/rl
./
was added to theLIBRARY_RUN_PATH
for all Linux binaries. Therefore the all shared object files should be detected automaticity and theLD_LIBRARY_PATH
must not be changed.
Changes to MCTS search
Use_TensorRT
was added which is set to true by default if the binary supports TensorRT inference.Centi_Node_Temperature
was added which controls the temperature on every node's policy distribution as an alternative to Dirichlet noise in tournament games. For low NPS system or short time controls it is recommend to reduceCenti_Node_Temperature
to e.g. 130 or 150.Allow_Early_Stopping
was added: if this option is false thenNodes
acts as a fixed number of nodes to reach. IfAllow_Early_Stopping
is true thenNodes
is treated at a maximum limit for nodes.- U-Value exploration factor was temporarily removed.
- Enhancing checks and captures was temporarily removed.
Available models
This release includes the 45th model update index during reinforcement learning and ~1 million generated self-play games. The model model-os-45-risev2.zip
was used during the 100 games with Multi-Variant-Stockfish:
The reinforcement learning loop was afterwards continued until ~ 2.5 million self-play games:
Elo progression during RL over 1 million games (800 Nodes / move)
Rank Name Elo +/- Games Score Draws
1 CrazyAra-0.7.0-Model-OS-45 98 31 500 63.7% 5.0%
2 CrazyAra-0.7.0-Model-OS-40 83 31 500 61.7% 3.8%
3 CrazyAra-0.7.0-Model-OS-50 78 30 500 61.0% 4.8%
4 CrazyAra-0.7.0-Model-OS-30 63 30 500 59.0% 4.8%
5 CrazyAra-0.7.0-Model-OS-35 39 30 500 55.6% 4.0%
6 CrazyAra-0.7.0-Model-OS-25 36 30 500 55.1% 4.2%
7 CrazyAra-0.7.0-Model-OS-19 10 30 500 51.5% 5.0%
8 CrazyAra-0.7.0-Model-OS-15 -15 30 500 47.9% 5.0%
9 CrazyAra-0.7.0-Model-OS-10 -43 30 500 43.8% 3.6%
10 CrazyAra-0.7.0-Model-OS-5 -121 32 500 33.3% 2.6%
11 CrazyAra-0.7.0-Model-OS-SL -271 40 500 17.4% 0.8%
2750 of 2750 games finished.
The model was initialized by training on 569,537 lichess.org crazyhouse games and was included in release 0.6.0:
Strength comparison between model-os-96-risev2
and model-os-45-risev2
:
TC: 800 nodes / move, Move Temp: 0.4, Move decay: 0.93, Opening suite: zh-equal-long-78.pgn
Score of CrazyAra-0.7.0-Model-OS-96 vs CrazyAra-0.7.0-Model-OS-45: 287 - 191 - 22 [0.596]
Elo difference: +67.5 +/- 30.4, LOS: 0.0 %, DrawRatio: 4.4 %
Inference libraries
The following inference libraries are used in each package (same as in strength eval 0.7.0 for reproduce-ability):
CrazyAra_0.7.0_Linux_CUDA_TensorRT.zip
- CUDA 10.1
- cuDNN 7.5.1.10
- TensorRT-5.1.5.0
CrazyAra_0.7.0_Linux_MKL.zip
- Intel MKL 20190502
CrazyAra_0.7.0_Win_CUDA.zip
- CUDA 10.1
- cuDNN 7.5.1.10
CrazyAra_0.7.0_Win_MKL.zip
- Intel MKL 20190502
The dll files for Windows are the same as in release 0.6.0. You can use the same dlls when moving them into a custom directory and adding this directory to the PATH
environment variable.