OAZ is a C++ library designed to carry out experiments with the Alpha Zero algorithm. It provides a Python front-end, PyOAZ, to run high-level tasks such as orchestrating self-play rounds or updating neural network weights.
-
Run the OAZ cpu-only image, mapping the port to get access to Jupyter from the host:
$ docker run -it -p 8888:8888 ghcr.io/ameroueh/oaz-cpu bash -
From the container, start Jupyter:
$ jupyter notebook --ip 0.0.0.0 --no-browser -
Open
http://localhost:8888from your favourite browser on the host, and open the notebooknotebooks/quickstart.ipynb
Clone the repository with
$ git clone git@github.com:ameroueh/oaz.gitNow initialize the submodules:
$ cd oaz && git submodule update --initThe easiest way of running OAZ is by building the Docker image. This image installs all the required dependencies, and can be used to compile and run the OAZ C++ code, and create install the Python package. Building the image may take a while (several hours) as tensorflow shared libraries are built as part of the process.
$ cd oaz
$ docker build . -t oazto build the image.
By default, no GPU support is enabled. To enable GPU support for Nvidia cards, provide appropriate
parameters to the following build arguments: BASE_IMAGE, TF_NEED_CUDA, TF_CUDA_COMPUTE_CAPABILITIES.
For example, to build the image with support for RTX 30xx GPUs, run
$ cd oaz
$ docker build --build-arg BASE_IMAGE=nvidia/cuda:11.1-cudnn8-devel-ubuntu18.04 --build-arg TF_NEED_CUDA=1 --build-arg TF_CUDA_COMPUTE_CAPABILITIES=8.6 . -t oazThis image is tested to work on an Ubuntu 20.10 host with nvidia-docker2 installed. Use the option --gpus=all (or select specific
GPU devices) to run the image with GPU support.
The image creates a user oaz with default UID 1000 (this can be overridden) for normal usage not requiring privileged access. You may want to change this default value should you wish to mount a host directory (for example, the OAZ git repository to carry out development work) to the container.
To compile and run the C++ test suite, run
$ cmake . -B build && cd build && make -j$(nproc) && cd test && ctest
from /home/oaz/oaz in the Docker container.
To run the Python tests, run
$ cd pyoaz_tests && pytest .
from /home/oaz/oaz in the Docker container.