Skip to content

CUDA 11, Analysis Engine Features, Prepare for Distributed

Compare
Choose a tag to compare
@lightvector lightvector released this 09 Nov 05:14
· 1460 commits to master since this release

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.