Katago: Difference between revisions

From NixOS Wiki
imported>OmnipotentEntity
Created page with "Katago is a very strong go engine. There are several build options for Katago's derivation. Katago can use either Eigen, OpenCL, or CUDA. By default, it uses OpenCL. Using..."
 
imported>OmnipotentEntity
No edit summary
Line 35: Line 35:
     }
     }


Enabling distributed training contributions:
Enabling [distributed training](https://katagotraining.org/) contributions:


     katago.override {
     katago.override {

Revision as of 09:45, 25 December 2020

Katago is a very strong go engine.

There are several build options for Katago's derivation. Katago can use either Eigen, OpenCL, or CUDA. By default, it uses OpenCL.

Using CUDA:

   katago.override {
     enableCuda = true;
     cudnn = cudnn_cudatoolkit_10_2; # insert your favorite version of CUDA here
     cudatoolkit = cudatoolkit_10_2; # I recommend at least CUDA 10, because older versions suffer major performance penalties
   }

Using Eigen:

   katago.override {
     enableGPU = false;
   }

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 [distributed training](https://katagotraining.org/) contributions:

   katago.override {
     enableContrib = true;
     openssl = openssl;
     git = git;
   }