Linux安装围棋AI(q5go和katago)

article/2025/10/19 0:33:48

最近一个多月开始学习围棋,因为平时常用的系统是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

安装很简单,就是常规的编译过程。先下载发布版的源码

unzip q5go-2.0.zip
cd q5Go-q5go-2.0
mkdir build
cd build
qmake ../src/q5go.pro PREFIX=/opt/q5go
make -j4
mkdir /opt/q5go
make install /opt/q5go

之后就可以在 /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的目录。

$ tree -d /opt/q5go
/opt/q5go
├── bin
├── katago_cuda
│   └── gtp_logs
└── share├── doc│   └── q5go│       └── html│           └── screens└── q5go└── translations

然后将下载的神经网络参数文件,就是那个*.bin.gz的文件放到katago的目录下,目录结构如下,其中20block.bin.gz就是神经网络参数文件。

$ tree /opt/q5go/katago_cuda
/opt/q5go/katago_cuda
├── 20block.bin.gz
├── analysis_example.cfg
├── cacert.pem
├── contribute_example.cfg
├── default_gtp.cfg
├── gtp_logs
│   └── 20210402-192452-A95FDD19.log
├── katago
├── match_example.cfg
└── README.txt

至此,katago就下载好了,只要配置好环境就可以run了。

环境配置

因为katago需要使用GPU,所以要配置GPU环境。详细的安装可以参考NVIDIA的官方教程,如果不想看如此长的英文安装教程,可以看下面的,哈哈哈(-)。下面的安装教程是基于Ubuntu18.04的,如果是其他的Linux发行版,还是看官方教程吧。

安装NVIDIA显卡驱动

NVIDIA显卡驱动很多电脑应该是有的,这里就不赘述了。

输入下面的命令,如果可以得到类似的输出(本人电脑的GPU比较垃圾,见笑了),则说明显卡驱动已经装好了。没有的话,请参考 Installing NVIDIA Graphics Drivers。

$ nvidia-smi
Fri Apr  2 20:53:54 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.39       Driver Version: 460.39       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce 920MX       Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   36C    P0    N/A /  N/A |    274MiB /  2004MiB |      9%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1891      G   /usr/lib/xorg/Xorg                162MiB |
|    0   N/A  N/A      2091      G   /usr/bin/gnome-shell               27MiB |
|    0   N/A  N/A      2583      G   ...gAAAAAAAAA --shared-files       52MiB |
|    0   N/A  N/A     25504      G   ...AAAAAAAA== --shared-files       26MiB |
+-----------------------------------------------------------------------------+

安装cuda

cuda是NVIDIA的并行计算平台。通过利用图形处理单元(GPU),可以提高计算机的计算性能。
cuda官网安装教程,又是一个贼长的英文文档。。。

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
sudo dpkg -i cuda-repo-ubuntu1804-11-1-local_11.1.0-455.23.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-1-local/7fa2af80.pub
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mkdir /etc/preferences.d
sudo mv cuda-ubuntu1804.pin /etc/preferences.d/cuda-repository-pin-600
sudo apt-get update
sudo apt-get install cuda

一般cuda的安装目录在/usr/local/cuda/,安装完可以检测一下是否成功

添加环境变量

将下面的语句添加到.bashrc

export PATH=/usr/local/cuda/bin:${PATH}

更新环境变量

source ~/.bashrc

安装cudnn

cuDNN(NVIDIA CUDA Deep Neural Network library)是为了实现GPU加速的深度神经网络原语库。

cudnn的安装过程不同的Linux发行版都不同,下面仅给出了Ubuntu18.04的安装过程,其他发行版见Downloading cuDNN For Linux

这四条命令可以省略,因为之前在安装cuda的时候已经执行过了,可以直接跳过。

sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mkdir /etc/preferences.d
sudo mv cuda-ubuntu1804.pin /etc/preferences.d/cuda-repository-pin-600

需要执行的是下面的命令:

sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
sudo apt-get install libcudnn8
sudo apt-get install libcudnn8-dev

大功告成,可以开心的打开katago了,哈哈哈!!!

测试katago

如何使用katago,可以参考Github

cd /opt/q5go/katago_cuda
./katago benchmark -model 20block.bin.gz

如何你运行成功了,恭喜,请快进到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

sudo apt install cmake
sudo apt install libzip-dev

编译katago

git clone https://github.com/lightvector/KataGo.git
cd KataGo/cpp
cmake . -DUSE_BACKEND=CUDA
make -j4

如果遇到下面的问题,则需要使用最新的CMake

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_cublas_device_LIBRARY (ADVANCED)linked by target "katago" in directory /content/drive/My Drive/KataGo/cpp

安装最新的Cmake并编译

wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2-Linux-x86_64.tar.gz
tar zxvf cmake-3.16.2-Linux-x86_64.tar.gz
sudo mv cmake-3.16.2-Linux-x86_64 /opt/cmake-3.16.2
/opt/cmake-3.16.2/bin/cmake . -DUSE_BACKEND=CUDA
make -j4

make成功之后,把生成的katago可执行文件拷贝到之前下载的katago文件夹替换掉旧的就可以了。

mv /opt/q5go/katago_cuda/katago /opt/q5go/katago_cuda/katago_old
mv ./katago /opt/q5go/katago_cuda
cd /opt/q5go/katago_cuda
./katago benchmark -model 20block.bin.gz

现在应该可以完美运行了,接下来就是使用 q5go调用katago了。

q5go调用katago

修改config文件

在执行了./katago benchmark命令后,程序会测试你的电脑,为你推荐合适的线程参数。在得到该参数后需要修改default_gtp.cfg文件。

default_gtp.cfg文件中找到下面的一行配置并修改。

numSearchThreads = 6 # 修改为推荐的线程参数

配置q5go

启动q5go程序,进入Settings->Computer Go->New,进行如下配置

之后就可以使用katago了。

打开一个对局,调整贴目 Edit->Game Information。
在这里插入图片描述

打开Analysis,就可以看到AI的推荐选点和胜率等信息了。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/50hAPgwG.shtml

相关文章

Linux 常用命令 查看 CPU 信息

强力推荐-不要错过,万一能帮助到自己呢? 推荐一个网站,关于人工智能教程,教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里…

Linux命令查看Linux服务器内存、CPU、显卡、硬盘使用情况

查看内存使用情况 使用命令: free -m 大致结果类似下图: 内存占用情况 参数解释: Mem行(单位均为M): total:内存总数used:已使用内存数free:空闲内存数shared&…

Ai-WB2系列模组linux开发环境搭建

文章目录 一、Ubuntu安装1.1 安装VMware Workstation Pro1.2 安装Ubuntu 二、编译三、烧录固件到设备3.1 方式一:用命令行烧录3.2 方式二:用可视化软件烧录(windows) 三、自定义工程如何修改Makefile四、开发资料 一、Ubuntu安装 …

用js动态显示当前时间

用setTimeout动态显示当前时间&#xff1a; <div class"showTime"></div> <script>var t null;tsetTimeout(time,1000);//开始运行function time(){clearTimeout(t);//清除定时器dt new Date();var y dt.getFullYear();var mt dt.getMonth()1…

js 获取当前gmt时间_javascript怎么获取当前时间?

javascript怎么获取当前时间&#xff1f;下面本篇文章就来给大家介绍一下使用javascript获取当前时间的方法&#xff0c;希望对大家有所帮助。 在JavaScript中可以使用Date对象中的Date()方法来获取当前时间。Date 对象用于处理日期和时间&#xff0c;Date()方法可返回当天的日…

【JavaScript】动态显示当前时间

可以实现动态显示当前时间&#xff0c;年月日时分秒星期几等&#xff0c;用12小时制表示&#xff0c;并能根据时间显示am&#xff08;上午&#xff09;&#xff0c;pm&#xff08;下午&#xff09;。 文章目录 一、基础知识二、动态显示系统当前时间1.代码2.展现效果 一、基础知…

用js显示当前时间

目录 以下是我全部代码 其中&#xff0c;关键代码是js 效果如图所示 关键代码解释如下 setInterval: getElementById: innerHTML: 在初步学习js时&#xff0c;可能会有一些朋友能用上js来显示时间&#xff0c;因此我在此提供一种方法供大家参考。 以下是我全部代码 <…

php js动态显示系统时间,基于javascript实现动态显示当前系统时间

本文实例讲解了javascript实现动态显示当前系统时间的详细代码&#xff0c;具体内容如下 (1)时间日期信息&#xff0c;应该在一个 中来显示 (2)定时器&#xff1a;每隔一秒再次访问系统时间&#xff0c;window对象的setTimeout() (3)时钟显示的时机(事件)&#xff1a;当网页加载…

原生JavaScript实现显示当前系统时间

1.一个html页面实现&#xff0c;js写在html里面 clock.html <!DOCTYPE html> <html> <head><meta charset"UTF‐8"><title>clock</title><style type"text/css">#clock {color: green;font‐size: 30px;}</…

Javascript获得系统当前时间

** 获取系统当前时间 ** 一、步骤与注意事项 首先使用new Date创建时间对象&#xff1b;&#xff08;定义一个Date对象的time&#xff09;分别从time中获取当前年、月、日、分、秒、星期几特别注意&#xff1a;月是从0开始的&#xff08;即1月是0&#xff09; 二、代码实现…

JavaScript动态显示当前时间

前端写项目时, 有时会需要获取当前时间, 虽然使用度不高, 难免有需要的时候. 下面整理获取当前时间代码思路 使用 new Date() 获取 当前时间的时间戳 getFullYear(): 时间戳转换的年份getMonth() 1: 月份getDate(): 日期getHours()getMinutes()getSeconds() 根据需要获取…

JavaScript 当前时间显示(js)

先设置一个空的div <div id"app"></div> js&#xff1a; <script>let _appdocument.getElementById("app");//计时调用let idsetInterval("test()",1000);function test() {let date new Date(); //当前时间let year dat…

大数据应用及其解决方案(完整版)

目录 1、大数据概述 1.1. 概述 1.2. 大数据定义 1.3. 大数据技术发展 2、大数据应用 2.1. 大数据应用阐述 2.2. 大数据应用架构 2.3. 大数据行业应用 2.3.1. 医疗行业 2.3.2. 能源行业 2.3.3. 通信行业 2.3.4. 零售业 3、大数据解决方案 3.1. 大数据技术组成 3.…

干货!大话EXT4文件系统完整版

一&#xff1a;VFS 我们知道SSD是一场存储革命&#xff0c;设计和制造一个好的SSD固然重要&#xff0c;但如何正确使用以充分发挥SSD性能同样重要。SSD内在的并行性和先擦再写的特性决定了它不同于机械硬盘简单的LBA和存储块一一对应&#xff0c;要充分挖掘SSD的并行性&#xf…

对话腾讯云专家工程师常青,聊一聊全真互联网的“小小”变化

点击上方“LiveVideoStack”关注我们 三年时间&#xff0c;从“懵懂少年”到能从容应对客户需求&#xff0c;拥有更加成熟和成体系的业务线&#xff0c;覆盖更多场景的产品线&#xff0c;不仅有音视频的传输&#xff0c;还有实时消息的通讯&#xff0c;以及视频内容的制作。这背…

PM到SM,个人蜕变组织转型

转自本人运营的公众号“ 携程技术中心PMO”&#xff08;ID&#xff1a;cso_pmo&#xff09; 作者简介 李卫红&#xff0c;曾在博世工作13年&#xff0c;从项目经理&#xff0c;到项目管理流程&#xff0c;考核&#xff0c;培训&#xff0c;教练体系的构建&#xff0c;再到项目…

BCI2008中文翻译版

BCI2008中文翻译版 转载来源 转载来源 https://blog.csdn.net/shenshikexmu/article/details/51251769 如论文[1]发表的那样&#xff0c;数据包含9个被试的脑电EEG数据。被试都是右利手&#xff0c;有正常或者矫正正常视力&#xff0c;并且领取实验报酬。所有被试坐在有扶手的…

阿里P9专家右军:以终为始的架构设计

P 右军 读完需要 17分钟 速读仅需 6 分钟 右军(于君泽)&#xff0c;蚂蚁金服P9技术专家&#xff0c;在 IT 领域从业超过十五年。对 高并发、分布式架构、内建质量、研发管理有一些心得。维护公众号“技术琐话”&#xff0c;合著有《深入分布式缓存》、《架构宝典》、《程序员的…

精准测试系列产品白皮书2020版

上篇【星云精准测试】 &#xff08;附精准测讲解视频和白皮书下载&#xff09; 第一章 精准测试诞生的背景 20年前&#xff08;2000年&#xff09;&#xff0c;上网是一件很酷的事&#xff0c;叫做“网上冲浪”&#xff0c;主要是几个门户网站占据绝大多数注意力&#xff1b…

Camtasia2020mac喀秋莎中文免费密钥

Camtasia 2020 for Mac是一款非常专业的屏幕录像编辑软件&#xff0c;它不仅能够为您录制屏幕还可以为您进行音频、视频编辑&#xff0c;设置插图&#xff0c;缩放局部画面&#xff0c;画中画效果以及设置过渡效果等等&#xff0c;非常的强大。 Camtasia 2020for Mac是TechSmi…