Skip to content

CrazyAra 0.7.0

Compare
Choose a tag to compare
@QueensGambit QueensGambit released this 06 Jan 02:05
· 719 commits to master since this release

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 with Allow_Early_Stopping=true.

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:
  • ./ was added to the LIBRARY_RUN_PATH for all Linux binaries. Therefore the all shared object files should be detected automaticity and the LD_LIBRARY_PATH must not be changed.

Changes to MCTS search

  • Use_TensorRTwas 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 reduce Centi_Node_Temperature to e.g. 130 or 150.
  • Allow_Early_Stopping was added: if this option is false then Nodes acts as a fixed number of nodes to reach. If Allow_Early_Stopping is true then Nodes 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.