CUDA 11, Analysis Engine Features, Prepare for Distributed
If you're a new user, don't forget to check out this section for getting started and basic usage!
The latest and strongest neural nets are still those from the former release: https://github.com/lightvector/KataGo/releases/tag/v1.4.5
If you don't know which version to choose (OpenCL, CUDA, Eigen, Eigen AVX2), read this: https://github.com/lightvector/KataGo#opencl-vs-cuda-vs-eigen
This release contains a variety of minor bugfixes and minor feature additions. It also incorporates a large number of internal changes to prepare for and support a distributed training run (yay), although distributed training support has deliberately not been enabled yet for the precompiled executables this release.
General Improvements and Features
-
Supports CUDA 11.1 now, which makes it possible to use KataGo CUDA instead of only OpenCL with NVIDIA RTX 30** GPUs. Beware though that on other GPUs CUDA 11.1 might not actually be faster than 10.2 - in one test on a V100 cloud machine, CUDA 11.1 seemed to be slower than CUDA 10.2. And possible changes to OpenCL speed and to CUDA speed on RTX 30** are also unknown and seem to vary - some users have reported exciting results, some have reported fairly disappointing ones.
-
Added new gtp config option "ignoreGTPAndForceKomi" that will force a particular komi regardless if the GTP controller tries to specify a different one. And KataGo is also now slightly smarter about guessing default komi based on other rules in the case where absolutely nothing tells KataGo what it should be.
-
KataGo no longer requires boost libraries in order to be compiled.
-
OpenCL backend optimized to now require less GPU memory.
-
Benchmark command should now be more efficient about choosing search ranges for threads.
Analysis Engine
There are several improvements to the json analysis engine.
-
Can now report the predicted ownership map for each individual move.
-
Can now report results from an ongoing query, making it possible to do the same things you would with kata-analyze or lz-analyze.
-
Can now cancel or terminate queries before they finish.
-
Can now specify differing per-turn priorities in a single query.
-
Supports priorities outside the range +/- 2^31, making it easier to do priorities based on timestamps or externally-determined large id numbers, or very, very long-running processes.
Bugfixes
-
Fixes a coding error that would make it sometimes impossible for KataGo to select the optimal move near the end of a game with button Go rules. (Button Go is a ruleset that KataGo supports that has the rules-simplicity and elegance of area scoring, but with the sharper and fairer scoring granularity of territory scoring).
-
Fix minor parsing bug on some uses of -override-config
-
Fixed some bugs on how the benchmark command behaved with threads for the Eigen backend.
Other Changes
-
Shuffle script for selfplay training, which long ago dropped support for shuffling training and validation data separately, now also uses a filepath that just shuffles all data together.
-
A large number of internal refactors and changes have been made to support acting as a client for distributed training. The cmake option
BUILD_DISTRIBUTED=1
will make KataGo compile with support for distributed training, although the official distributed run has not quite started yet.