Katago: Difference between revisions
imported>OmnipotentEntity No edit summary |
imported>OmnipotentEntity Updated for 1.14.0 |
||
Line 2: | Line 2: | ||
There are several build options for Katago's derivation. Katago can use either Eigen, OpenCL, CUDA, or TensorRT. By default, it uses OpenCL. To use a different backend override the `backend` attribute, allowed values are "eigen", "opencl", "cuda", and "tensorrt". | There are several build options for Katago's derivation. Katago can use either Eigen, OpenCL, CUDA, or TensorRT. By default, it uses OpenCL. To use a different backend override the `backend` attribute, allowed values are "eigen", "opencl", "cuda", and "tensorrt". | ||
For the eigen and cuda backends either version should be more or less functionally the same. | For the eigen and cuda backends either version should be more or less functionally the same. | ||
Using CUDA: | Using CUDA: | ||
Line 28: | Line 18: | ||
katago.override { | katago.override { | ||
backend = "eigen"; | backend = "eigen"; | ||
} | |||
Using TensorRT, first download the tensorrt redistributable installer from https://developer.nvidia.com/tensorrt and add it to your nix-store. | |||
Note that you need an NVidia account (free) to do this. | |||
katago.override { | |||
backend = "tensorrt"; | |||
enableTrtPlanCache = true; # Recommended to speed up booting, but uses additional disk space, so not recommended for contrib. | |||
} | } | ||
Revision as of 19:42, 28 December 2023
Katago is a very strong go engine.
There are several build options for Katago's derivation. Katago can use either Eigen, OpenCL, CUDA, or TensorRT. By default, it uses OpenCL. To use a different backend override the `backend` attribute, allowed values are "eigen", "opencl", "cuda", and "tensorrt".
For the eigen and cuda backends either version should be more or less functionally the same.
Using CUDA:
katago.override { backend = "cuda"; cudnn = cudnn_cudatoolkit_10_2; # insert your favorite version of CUDA here (optional) cudatoolkit = cudatoolkit_10_2; # I recommend at least CUDA 10, because older versions suffer major performance penalties stdev = gcc8Stdev; # If you specify CUDA 10 or below you must also override the gcc version, this is due to NVidia compiler support. }
Using Eigen:
katago.override { backend = "eigen"; }
Using TensorRT, first download the tensorrt redistributable installer from https://developer.nvidia.com/tensorrt and add it to your nix-store.
Note that you need an NVidia account (free) to do this.
katago.override { backend = "tensorrt"; enableTrtPlanCache = true; # Recommended to speed up booting, but uses additional disk space, so not recommended for contrib. }
If your processor support AVX2, you might want to enable it:
katago.override { enableAVX2 = true; }
By default, katago uses the TCMalloc memory allocator. It is not recommended that you disable it due to severe fragmentation issues after running katago for a few hours. However, if you cannot use TCMalloc, and you do not plan on running katago for extended periods of time, you can disable it anyway.
katago.override { enableTcmalloc = false; }
Katago also supports large boards (up to 29x29); however, there are no networks trained specifically on them, and enabling them slows down even normal sized board play, so it is disabled by default. If you want to enable support:
katago.override { enableBigBoards = true; }
Enabling [1] contributions:
katago.override { enableContrib = true; }