在ubuntu上部署Sabaki以及围棋引擎katago

一、Sabaki的部署

想要配置一个可以用于分析的图像界面katago,需要一个可视化的图形界面(Lizzieyzy、Sabaki等等)和katago引擎。在Ubuntu上,我推荐使用Sabaki,因为它下载即可打开使用,而Lizzieyzy虽然功能更齐全,但它需要java环境而且容易报错。

Sabaki界面

1.1 下载Sabaki

Sabaki可在github上下载,下载各个版本的链接为Sabaki,对于Ubuntu选择linux-x64.AppImage的版本。在下载到本地后,右键“属性-权限”赋予它执行权限,点击即可运行。

1.2 创造快捷方式

首先下载它的Logo,然后创建.desktop文件,具体代码可参考如下:

1
2
3
4
5
6
[Desktop Entry]
Name=Sabaki
Exec=/path/to/Sabaki.AppImage
Icon=/path/to/logo.png
Terminal=false
Type=Application

将其复制到桌面并赋予执行权限即可。

二、下载katago

接下来我们下载katago引擎,这里只考虑有独显的电脑的配置。我们有三种选择,从易到难分别为OpenCL、CUDA和Tensor RT版本,下面这三种都会介绍。
下载网址

2.1 OpenCL版本

2.1.1 下载OpenCL版katago引擎

如果你的电脑有一个不错的独显并且希望快速开始的话,OpenCL是最好的选择,它不需要配置CUDA或者cuDNN。
下载界面选择katago-v1.14.1-opencl-linux-x64.zip这个安装包,其中后缀有bs29的是娱乐版本,它支持29 ×\times 29的超大棋盘,不过对电脑性能的要求也更高,想玩的就可以下载带bs29的版本。
在合适的位置新建文件夹katago,在下面再新建一个文件夹katago_opencl,将这个安装包解压至katago_opencl下,结果如下所示。

1
2
3
4
5
6
7
8
9
├── katago_opencl
├── analysis_example.cfg
├── cacert.pem
├── contribute_example.cfg
├── default_gtp.cfg
├── katago
├── katago-v1.14.1-opencl-linux-x64.zip
├── match_example.cfg
└── README.txt

2.1.2 下载katago权重

有了引擎,还需要下载katago的权重下载地址。其中标了绿色的那一行就是elo分最高(最厉害)的权重。在Network File下点击download,将下载下来的bin.gz文件剪切到katago/katago_opencl文件夹下。
权重下载网页

2.1.3 配置OpenCL版katago

打开Sakabi,在左上角点开File-Preferences然后切换语言为中文并重启Sakabi。接着点开文件–首选项–引擎,新建文件夹sabari_log作为日志保存目录。
还是在引擎这里,点击“新增”,会出现四行需要我们填的东西,分别为:

  1. 引擎的名字(任意取)
  2. 引擎路径:/katago/katago_opencl/katago(这个katago文件的路径)
  3. 运行参数:gtp -model <权重文件名>.bin.gz -config default_gtp.cfg
  4. 启动参数:time_settings 0 5 1

示例如下:
启动参数(参考)
然后点击”关闭“,点击左上角的小三角并选中配置的引擎,就开始初始化啦。第一次初始化的时间会在两三分钟左右,耐心等待~~
出现”GTP ready, beginning main protocol loop“则配置成功!

2.1.4 遇到问题及解决

  1. 问题:在初始化引擎的时候,我遇到了error while loading shared libraries: libzip.so.5: cannot open shared object file: No such file or directory的问题,这是因为linux系统缺少libzip5造成的。

  2. 解决:首先我们需要下载zlib库。zlib下载方式见这篇blog,不过注意把下载网址http://www.zlib.net/zlib-1.2.11.tar.gz改为http://www.zlib.net/fossils/zlib-1.2.11.tar.gz。
    有了zlib库后,这是libzip5的下载网址,我们根据这篇blog的步骤来下载libzip5,再在其中找到libzip.so.5文件,并创建软链接到/usr/lib/上,命令如下:

    1
    2
    3
    sudo ln -s "libzip.so.5文件所在位置" /usr/lib/libzip.so.5
    # 比如我的电脑中,命令应该为:
    sudo ln -s /usr/local/lib/libzip.so.5 /usr/lib/libzip.so.5

    其他同类型的报错解决方式也是如出一辙。先在电脑中找找有没有该文件,如果有就创建软链接,如果没有就下载所需要的库,再创建相应的软链接。

2.2 CUDA版本

CUDA版本的katago比OpenCL版本的强不少,不过安装起来也更复杂,需要安装CUDA和cuDNN两个东西。

2.2.1 CUDA安装

在katago引擎的下载链接找到有cuda和cudnn的那个版本,发现最新版需要12.1的CUDA和8.9.7的cuDNN。在电脑上通过

1
nvidia-smi

来查看是否支持12.1的CUDA版本(显示的值要大于等于12.1,我这里是12.2),如果比12.1低的话可以下载更低版本的引擎。
指令输出,右上角显示12.2

于是我们在官网找到CUDA12.1的下载网址,选择"linux–x86_64–Ubuntu–22.04–runfile(local)"(这个要根据具体ubuntu版本进行调整),下面就会出现安装的指令。
命令行安装
运行.run文件后会出现一个图形化的安装界面,可以根据这篇文章的指导来做,总之就是在安装的时候不要点上安装驱动,否则很容易导致nvidia驱动损坏。

2.2.2 遇到问题及解决

  1. 问题:在运行.run文件时,我遇到了安装失败的问题,安装日志显示
1
2
[INFO]: md5 matches, removing file /var/log/nvidia/.uninstallManifests/CUDA_Toolkit_10.2-components/CUDA_Tools_10.2-components/CUDA_Visual_Tools_10.2-components/
[ERROR]: boost::filesystem::remove: Directory not empty: "/var/log/nvidia/.uninstallManifests/CUDA_Toolkit_10.2-components/CUDA_Tools_10.2-components/CUDA_Visual_Tools_10.2-components/"
  1. 解决:在查询资料后,我发现在运行.run文件的指令后应该加上一些参数,具体指令如下:
1
sudo sh cuda_12.1.0_530.30.02_linux.run --silent --toolkit --samples --librarypath=/usr/local/cuda-12.1

这条指令运行的时候不会弹出图形界面,在等待一会后运行完成,把~/.bashrc文件更新一下后,通过nvcc -V来看CUDA是否安装成功。(更新bashrc文件的过程详见上面这篇文章

  1. 这个问题正常情况下是不会出现的。

2.2.2 cuDNN安装

这是cuDNN8.9.7的x86下载链接,也可以在官网上找到下载别的版本的cuDNN,不过这个网址可能需要你注册一个nvidia帐号。

接下来的具体下载步骤可以参考这篇文章,为了方便起见,我将安装指令粘贴过来:

1
2
3
4
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

2.2.3 CUDA版本的引擎安装

与本文2.1.1和2.1.2章过程一样,在katago目录下创建一个katago_cuda文件夹,将引擎文件解压后放入其中,同时也要把权重文件也放入其中,这里不再赘述,下面是成功后的katago目录下的文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
katago
├── katago_cuda
│ ├── analysis_example.cfg
│ ├── cacert.pem
│ ├── contribute_example.cfg
│ ├── default_gtp.cfg
│ ├── kata1-b28c512nbt-s7168446720-d4316919285.bin.gz
│ ├── katago
│ ├── match_example.cfg
│ └── README.txt
└── katago_opencl
├── analysis_example.cfg
├── cacert.pem
├── contribute_example.cfg
├── default_gtp.cfg
├── kata1-b28c512nbt-s7168446720-d4316919285.bin.gz
├── katago
├── match_example.cfg
└── README.txt

2.2.4 配置CUDA版katago

过程与本文2.1.3一样,下面给出我的配置:
cuda版的启动参数配置
在配置完成后点左上三角即可初始化引擎,等待看是否报错/配置成功。

2.2.5 遇到问题及解决

  1. 问题:在初始化引擎的时候,我遇到了error while loading shared libraries: libcudnn.so.8: cannot open shared object file: No such file or directory的问题,这是因为我们下载cudnn后没有将其移动到文件夹中。
  2. 解决:通过查找文件名找到我们刚刚下载的cudnn中的libcudnn_cnn_infer.so.8文件,并建立软链接即可解决。

在ubuntu上部署Sabaki以及围棋引擎katago
https://kingdom-of-warriors.github.io/2024/07/26/sabaki&katago/
作者
Rayy
发布于
2024年7月26日
许可协议