Linux安装围棋AI(q5go和katago)
最近一个多月开始学习围棋,因为平时常用的系统是Linux,所以想要在Linux上安装一个围棋AI,可以借助AI分析棋局。经过一番查找,决定使用q5go和katago,安装还是挺复杂的,特地记录(摸鱼)一下。
目录
前言
目前大部分的围棋AI软件都是由两部分组成,一部分是围棋GUI,即围棋的图形程序;另一部分是AI引擎(Engine)。Windows系统有很多直接组合好的软件,开箱即用。不过Linux和Mac上很少,就只能自己找了。
q5go安装
q5go是一个开源的围棋GUI,使用qt5开发。大致功能如下:
- SGF editor
- Analysis frontend for KataGo, Leela Zero or compatible engines
- Pattern search and game info search in a database
- GTP interface
- IGS client
- Export to a variety of formats
安装很简单,就是常规的编译过程。先下载发布版的源码
1 | unzip q5go-2.0.zip |
之后就可以在 /opt/q5go/bin
目录找到可执行文件q5go了
为了方便,也可以在/usr/share/applications
添加.desktop
文件创建快捷方式。
katago安装
katago 是一个很强的开源围棋AI Engine。katago仅仅实现了一个engine,并没有GUI界面,因此需要联合像q5go这样的GUI程序才能使用。
katago的安装比较麻烦,主要是因为NVIDIA的cuda环境不容易配置。
**[声明]**:由于不同Linux发行版的安装差异,下面安装过程中的命令很可能不好用,如果出现问题,请参考官方教程!!!
katago下载
首先下载cuda版本的katago engine 。
然后下载神经网络的文件,katago针对不同电脑的性能提供了三套不同的文件,分别是20block、30block、40block的网络。如果GPU性能比较差,就选择20block的网络,GPU性能很好的,可以选择40block的。
- g170-b30c320x2-s4824661760-d1229536699 (“g170 30 block d1229M”) - Final 30 block network!
- g170-b40c256x2-s5095420928-d1229425124 (“g170 40 block d1229M”) - Final 40 block network!
- g170e-b20c256x2-s5303129600-d1228401921 (“g170e 20 block d1228M”) - Final 20 block network!
将katago的文件夹放到q5go的目录下,即/opt/q5go
目录下,主要是为了方便管理,放在其他目录也可以。
目录结构如下,其中 katago_cuda
就是katago的目录。
1 | tree -d /opt/q5go |
然后将下载的神经网络参数文件,就是那个*.bin.gz
的文件放到katago的目录下,目录结构如下,其中 20block.bin.gz
就是神经网络参数文件。
1 | tree /opt/q5go/katago_cuda |
至此,katago就下载好了,只要配置好环境就可以run了。
环境配置
因为katago需要使用GPU,所以要配置GPU环境。详细的安装可以参考NVIDIA的官方教程,如果不想看如此长的英文安装教程,可以看下面的,哈哈哈(^-^)。下面的安装教程是基于Ubuntu18.04
的,如果是其他的Linux发行版,还是看官方教程吧。
安装NVIDIA显卡驱动
NVIDIA显卡驱动很多电脑应该是有的,这里就不赘述了。
输入下面的命令,如果可以得到类似的输出(本人电脑的GPU比较垃圾,见笑了),则说明显卡驱动已经装好了。没有的话,请参考 Installing NVIDIA Graphics Drivers。
1 | nvidia-smi |
安装cuda
cuda是NVIDIA的并行计算平台。通过利用图形处理单元(GPU),可以提高计算机的计算性能。
cuda官网安装教程,又是一个贼长的英文文档。。。
1 | wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda-repo-ubuntu1804-11-1-local_11.1.0-455.23.05-1_amd64.deb |
一般cuda的安装目录在/usr/local/cuda/
,安装完可以检测一下是否成功
添加环境变量
将下面的语句添加到.bashrc
中
1 | export PATH=/usr/local/cuda/bin:${PATH} |
更新环境变量
1 | source ~/.bashrc |
安装cudnn
cuDNN(NVIDIA CUDA Deep Neural Network library)是为了实现GPU加速的深度神经网络原语库。
cudnn的安装过程不同的Linux发行版都不同,下面仅给出了Ubuntu18.04的安装过程,其他发行版见Downloading cuDNN For Linux
这四条命令可以省略,因为之前在安装cuda的时候已经执行过了,可以直接跳过。
1 | sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub |
需要执行的是下面的命令:
1 | sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" |
大功告成,可以开心的打开katago了,哈哈哈!!!
测试katago
如何使用katago,可以参考Github
1 | cd /opt/q5go/katago_cuda |
如何你运行成功了,恭喜,请快进到q5go调用katago。
如果失败了,同样恭喜,请继续享受安装的快乐。
如果失败的信息是类似于./katago: error while loading shared libraries: libzip.so.5: cannot open shared object file: No such file or directory
这样的,可以尝试安装libzip
,如果libzip
已将安装,你遇到的应该是这个issue。
该问题就是发布版的katago在编译时使用的动态链接库和你本地的不同,无法使用。解决方法请跳转到源码安装
如果是其他失败信息,我也没遇到过,就请参考github issue的方法了
源码安装
Welcome to 源码安装~~~
老规矩,官方教程
编译环境准备,安装camke、libzip-dev
1 | sudo apt install cmake |
编译katago
1 | git clone https://github.com/lightvector/KataGo.git |
如果遇到下面的问题,则需要使用最新的CMake
1 | CMake Error: The following variables are used in this project, but they are set to NOTFOUND. |
安装最新的Cmake并编译
1 | wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2-Linux-x86_64.tar.gz |
make
成功之后,把生成的katago
可执行文件拷贝到之前下载的katago文件夹替换掉旧的就可以了。
1 | mv /opt/q5go/katago_cuda/katago /opt/q5go/katago_cuda/katago_old |
1 | cd /opt/q5go/katago_cuda |
现在应该可以完美运行了,接下来就是使用 q5go调用katago了。
q5go调用katago
修改config文件
在执行了./katago benchmark
命令后,程序会测试你的电脑,为你推荐合适的线程参数。在得到该参数后需要修改default_gtp.cfg
文件。
在default_gtp.cfg
文件中找到下面的一行配置并修改。
1 | numSearchThreads = 6 # 修改为推荐的线程参数 |
配置q5go
启动q5go
程序,进入Settings->Computer Go->New,进行如下配置

之后就可以使用katago了。
打开一个对局,调整贴目 Edit->Game Information。
打开Analysis,就可以看到AI的推荐选点和胜率等信息了。