GLOBIS-AQZ (AQ)
GLOBIS-AQZ 是一个使用深度学习技术的围棋引擎。
它的特点是既支持日本规则 Komi 6.5,也支持中国规则 Komi 7.5。
该项目利用了 GLOBIS-AQZ 项目的结果。
GLOBIS-AQZ is a joint project developed by GLOBIS Corporation, Mr. Yu Yamaguchi, and Tripleize Co., Ltd., provided by the National Institute of Advanced Industrial Science and Technology (AIST), and cooperated by the Nihon Ki-in. This program uses the result of GLOBIS-AQZ.
由于它是开源软件,任何人都可以免费使用。
本程序是用来玩和分析游戏的,请为其设置 Lizzie、Sabaki、GoGui 等 GUI 软件。
Please see here for an explanation in English.
日本語の説明はこちらをご覧ください。
1. 下载
从 Releases 中下载.
Windows 10 和 Linux(Ubuntu 18.04)上构建的可执行文件。
如果它在其他环境中无法正常运行,请考虑为每个环境构建它(针对开发者)。
2. 动作环境要求
- OS : Windows 10, Linux
- GPU : Nvidia's GPU (Compute Capability >3.0)
- CUDA Toolkit 10.0 or 10.2 + cuDNN 7.6.5
- TensorRT 7.0.0
- 适用于 Visual Studio 2015、2017 和 2019 的 Microsoft Visual C++ 可再发行软件包 (仅Windows)
它在以下环境中进行了测试:
- Ubuntu 18.04 / RTX2080Ti / CUDA10.0 / TensorRT7.0.0
- Windows 10 Pro (64bit) / RTX2080Ti / CUDA10.2 / TensorRT7.0.0
3. 如何使用
例如,根据日本的规则,如果你在 GTP 模式下开始的时间是20分钟+30秒:
$ AQ.exe --rule=1 --komi=6.5 --main_time=1200 --byoyomi=30
用中国规则(默认),要将出局数(playouts)固定为800,并在没有 "ponder" 的情况下开始:
$ AQ.exe --search_limit=800 --use_ponder=off
用 Tromp-Taylor 规则,时间定在15分钟(这是一个CGOS的设置):
$ AQ.exe --rule=2 --repetition_rule=2 --main_time=900 --byoyomi=0
3-1. 设置环境变量
在 Windows 的情况下,必须在 PATH 环境变量中注册以下路径。
{your_cuda_path}\NVIDIA GPU Computing Toolkit\CUDA\v10.{x}\bin
{your_tensorrt_path}\TensorRT-7.0.0.{xx}\lib
3-2. 生成引擎文件
第一次启动时,它会从 UFF(Universal File Format)格式的文件中生成一个为您的环境优化的网络引擎。
可能需要几分钟的时间来生成这个引擎。
序列化的引擎文件被保存在 engine
文件夹中,所以它将会立即启动第二次。
3-3. 向 Lizzie 注册
对于 Windows,在引擎命令中添加 {your_aq_folder}/AQ.exe --lizzie
。
例如,如果你想用日本规则分析,请修改 AQ 文件夹中的 config.txt 文件,使用各种设置。
4. 选项
以下是对主要选项的描述。
它可以作为命令行参数指定,也可以通过编辑 config.txt 来改变。
例如,--komi=6.5
4-1. 游戏选项
选项 | 缺省 | 描述 |
---|---|---|
--num_gpus | 1 | 要使用的GPU数量。 |
--num_threads | 16 | 用于搜索的线程数量。 |
--main_time | 0.0 | 搜索的主要时间(单位:秒)。 |
--byoyomi | 3.0 | 倒计时时间(单位:秒)。 |
--rule | 0 | 的游戏规则。 0:中国规则 1:日本规则 2:Tromp-Taylor规则 |
--komi | 7.5 | Komi的数量。在日本规定的情况下,请注明6.5。 |
--batch_size | 8 | 一次评价的批次数。 |
--search_limit | -1 | 搜索次数(playouts)。-1表示该选项被禁用。 |
--node_size | 65536 | 搜索的最大节点数。当达到这个节点数时,搜索结束。 |
--use_ponder | on | 是否要在对手的回合中提前阅读。 在Lizzie中使用时必须打开它。 |
--resign_value | 0.05 | 放弃的胜率。 |
--save_log | off | 是否保存游戏中的思想记录和sgf文件。 |
4-2. 启动模式
主要是用来调试的。请不要使用 --lizzie
以外的任何其他游戏进行正常的游戏和分析。
它们只被认可为命令行参数。
选项 | 启动模式 |
---|---|
(未指定) | GTP 通信模式 |
--lizzie | 除了 GTP 通讯外,它还能为 Lizzie 输出信息。 |
--self | 开始自我匹配。 |
--policy_self | 它以 policy network 的最大手笔开始自我匹配。 |
--test | 测试板式数据结构的一致性等。 |
--benchmark | 它可以衡量推出和神经网络的计算速度。 |
5. 汇编方法
以下是对开发者的解释。
源代码只实现了游戏和分析,不包含任何学习功能。
AQ 的编写是为了能用 C++11/C++14 进行编译,编码约定一般参考下面的页面。
5-1. Linux
要求
- gcc
- make
- CUDA Toolkit 10.x
- TensorRT 7.0.0
在 Makefile 中检查 CUDA 和 TensorRT 的 include 路径和库路径。
$ make
5-2. Windows
要求
- Visual Studio 2019 (MSVC v142)
- CUDA Toolkit 10.x
- TensorRT 7.0.0
额外的 include 目录:
{your_cuda_path}\NVIDIA GPU Computing Toolkit\CUDA\v10.x\include
{your_tensorrt_path}\TensorRT-7.0.0.xx\include
额外的库目录:
{your_cuda_path}\NVIDIA GPU Computing Toolkit\CUDA\v10.x\lib\x64
{your_tensorrt_path}\TensorRT-7.0.0.xx\lib
额外的库文件:
cudart.lib
nvparsers.lib
nvonnxparser.lib
nvinfer.lib
执行上述设置并编译。
6. License