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.

Clone this wiki locally