OpenCL, Windows Support, other features and fixes
As of this version, OpenCL is now working! Compiling for Windows on MSVC is now supported, with instructions in the main README, and attached to this release are pre-compiled Windows binaries.
If you have questions or run into issues, feel free to open an issue on this GitHub, or for possibly more interactive feedback, you can check out the Leela Zero Discord (which is also home to a fair amount of KataGo-related discussion as well).
Notes about OpenCL vs CUDA:
- Upon the first startup, the OpenCL version should do a bunch of tuning to optimize parameters to your GPU. This might take a while, and is completely normal.
- You should probably take a look at the notes at the top of
gtp_example.cfg
and play around with some of the parameters for best performance. If you have a strong GPU, it is quite possible that you could get a factor of 2x-4x performance gain by adjusting the number of threads or other parameters to the optimal values for your system. Unlike the OpenCL-specific GPU parameters, these values are not automatically tuned - future versions of KataGo will probably include better support or automation for tuning these values as well though. - If you have more than one OpenCL device (e.g. some Intel CPU and also a proper GPU) and it's choosing the wrong one, edit
openclDeviceToUse
in gtp_example.cfg - The OpenCL version has in all likelihood NOT been optimized quite as heavily as LZ has, you should not expect it to be nearly as fast since it's new and also KataGo is the first time I (lightvector) have ever written GPU code in any form and am not particularly expert yet. :)
- If you have an NVIDIA GPU, the CUDA version could be faster (or not! it varies). For the CUDA version, you will need to install CUDA 10.1 on your own, as well as CUDNN 7.6.1 (https://developer.nvidia.com/cuda-toolkit) (https://developer.nvidia.com/cudnn). When installing CUDA, you will also need to restart your computer after installing for the changes to pick up properly (CUDA does not tell you this).
Enjoy!
Where to get the neural nets
For pre-trained neural net models, see the prior release.
Changes
Aside from OpenCL and Windows support, minor changes include:
- Use smaller NN buffer for boards smaller than 19x19, performance improvement
- Fixed bug that was preventing ".gz" files from loading properly in Windows.
analysisPVLen
can now configure the maximum length of analysis variationsdynamicScoreZeroWeight
can experimentally configure KataGo's score utility, intended for handicap games.- Resignation is enabled by default, minor changes to example GTP config params.
- KataGo now by default builds as
katago
orkatago.exe
instead ofmain
. - KataGo now supports
loadsgf
GTP command. - GTP extension commands are now documented
- A wide variety of bugfixes and internal cleanups.
Update (2019-07-19) - a few more changes
- Added another change where unless explicitly configured otherwise (in
gtp.cfg
), KataGo will share OpenCL tuning across all board sizes, since tuning can be a bit slow to do on every board size. - Added precompiled Linux binaries. These binaries are mostly dynamically linked, so you will still have to ensure you have the appropriate shared libraries (and CUDA and CUDNN for the CUDA version).
Update (2019-07-20) - out of beta now! A few more changes:
- Added some logic to select a reasonable device for OpenCL by default.
- Fixed bug where evaluation sign was flipped in log files.
- Fixed bug where trying to make a move past the end of the game would return an illegal move.
- Fixed some handling of how handicap games were treated with respect to komi updates and board clearing.