Skip to content

Build instructions

Johannes Czech edited this page Oct 14, 2022 · 17 revisions

CrazyAra can be build in different modes:

  • MODE_CRAZYHOUSE: Build with crazyhouse only support (default)
  • MODE_CHESS: Build with chess + chess960 only support
  • MODE_LICHESS: Build with lichess variants support
  • MODE_POMMERMAN: Build with Pommerman support
  • MODE_OPEN_SPIEL: Build with OpenSpiel game interface support.

and different neural network inference back-ends:

  • BACKEND_TENSORRT: Build with TensorRT back-end (default)
  • BACKEND_MXNET: Build with MXNet backend (Blas/IntelMKL/CUDA/TensorRT) support
  • BACKEND_TORCH: Build with Torch backend (CPU/GPU) support
  • BACKEND_OPEN_VINO: Build with OpenVino backend CPU support

Only one of these mode can be active at a time with the exception that BACKEND_MXNET and BACKEND_TENSORRT can both be ON at a time. By default the native TensorRT back-end without MXNet is used.

The CMake option USE_RL allows building the executable with reinforcement learning support and requires additional dependencies for exporting the generated data set.

Custom MCTS-Build options:

Build flag Description
MCTS_STORE_STATES Allows storing the states within the nodes. This is highly memory consuming but can be beneficial for environments with a high do_action() runtime cost and either low memory consumption or low total number of nodes in the search tree.
MCTS_SINGLE_PLAYER The MCTS is only computed for a single player. The value won't be negated during back-propagation.
MCTS_TB_SUPPORT The MCTS uses tablebase support during search.

For all options, please refer to CMakeLists.txt.


This guide is structured into three parts and is available for Linux, Mac and Windows.