编译leela-zero-next

in #ai5 years ago

编译 leela-zero-next

官方教程:https://github.com/leela-zero/leela-zero/tree/next#compiling-autogtp-andor-leela-zero

如果遇到 git clone 速度极慢极不稳定的问题,可如下设置:

// 设置
git config --global http.proxy "socks5://xxx"
git config --global https.proxy "socks5://xxx"
// 取消
git config --global --unset http.proxy
git config --global --unset https.proxy

以下基于 Windows10 + VS2017 环境,实为踩坑笔记,面向纯粹的 C++ 门外汉,大神请退散。

工具

01下载vs2017.png

下载、安装并运行。
如无其他需求,可最小化组件安装:
02最小化安装vs2017.PNG

VC++ 2017 tools
Windows 10 SDK
Google Test 测试适配器

源码

如果实在不便使用 git clone,可以考虑用笨办法将源码下载后手动处理。
03下载next源码.png

首先访问官方项目,点击 Clone and download,点击 Download ZIP;开始下载后,再点击源码列表中的文件夹 gtest @ xxx,跳转到 gtest 项目,同上下载;开始下载后,回到官方项目,点击源码列表中的文件夹 src,跳转后再点击源码列表中的文件夹 Eigen @ xxx,跳转到 Eigen 项目,同上下载。
一切顺利的话,最后得到三个 zip 压缩包,全部解压。将 gtest 和 Eigen 解压后得到的那个文件夹内的一大堆内容全部复制到 leela-zero-next 的对应文件夹内。
至此准备就绪。

编译

打开 leela-zero-next 文件夹内的 msvc 文件夹,双击 leela-zero2017.sln 文件,进入 VS2017。
点击工具栏项目,在下拉菜单中点击第一项重定解决方案目标,在弹出对话框中点击确定按钮。
默认状态下工具栏会显示解决方案配置为 Debug,点击之并在下拉菜单中选择 Release,最后点击绿色箭头的本地 Windows 调试器
编译速度由 CPU 等的性能决定,首次编译时间较长,等待一段时间即大功告成。

其他

写作本文时 leela-zero-next 依赖 opencl-nug 0.777.12版,而最新稳定版为 0.777.77,强迫症患者千万别乱升级,否则将导致找不到依赖而编译失败。
编译成功后二进制文件存储在 ./msvc/x64/ 目录下,可直接将该目录打包分享,仅 .exe .dll 为必需,其余文件分享时可以删除。
第一次运行时会进行初始化,完成后会产生 leelaz_opencl_tuning 文件,分享时千万不要附带该文件,否则可能导致接收者初始化特别漫长甚至无法运行。
因绝大多数 LZ 项目周边编译者和项目作者 GCP 一样都是用的 VS2017,所以可能仅分享了他们编译出的 .exe 文件,只要放到存有 .dll 的文件夹下即可兼容调用。