银行 社区服务 每日签到 会员排行 网站地图
  • 8074阅读
  • 67回复

皮卡鱼象棋引擎编译教程

楼层直达
级别: 中尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻2级]金币数量≥1000枚 [未点亮棋中蓝钻]乐币数量<10枚 [棋中粉钻1级]贡献值数量≥1点 [棋中彩钻2级]精华帖数量≥2篇
发帖
159
金币
1730
威望
4
贡献值
1
乐币
3
主题
28

皮卡鱼象棋引擎编译教程


以前浏览网站都是手机的,回复大家也是用手机的。今天有时间,教教大家如何编译皮卡鱼象棋引擎。毕竟皮卡鱼是开源的,大家可以学习学习。


此教程是在Windows 10的64位操作系统上进行的。别的系统也可参考.


一、安装:
1、下载MSYS2的exe包,下载地址https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20221028.exe
2、下载完成后击安装包,选择安装即可。


3、下载皮卡鱼引擎的源码,下载地址https://codeload.github.com/PikaCat-OuO/Pikafish/zip/refs/heads/master
4、把源代码解压放在c盘的根目录。重命名pikafish。




二、更新软件包数据库和基本软件包
1、从“开始”菜单运行“ MSYS2 MSYS”。
2、如果安装的不是最新的MSYS2,则使用下面命令更新。如果是最新的,则跳过此步骤,进入下一步骤。最后会有报错,官网说这是预期的,不会影响使用。
3,窗口中输入pacman -Syu 回车,更新包的中途中再选择输入Y,直到更新包完成。
4、更新其余的基本软件包,安装软件时会有一些报错的,再来一次pacman -Syu,再输入y。
     直到出现下面提示为止:Starting full system upgrade...
                                         there is nothing to do,          这提示没有要更新的包了。


5、现在,MSYS2已为您准备就绪。您可能需要安装一些工具和mingw-w64 GCC才能开始编译。在使用如下命令时遇到询问,按回车即可。
     ①.pacman -S --needed base-devel mingw-w64-x86_64-toolchain    
     ②.没有报错,为了验证,我又跑了一遍①命令。再关闭MSYS2 MSYS窗口


三、MSYS2的使用和编译皮卡鱼引擎
1.从“开始”菜单运行【MSYS MinGW 64-bit】。然后用命令进入到皮卡鱼的src目录,命令如下:
  ①.cd c:/pikafish
  ②.cd src
2、编译皮卡鱼引擎。先复制皮卡鱼的权重文件pikafish.nnue放到src目录文件下,然后再编译,命令如下
    ①.编译modern指令的命令:make build ARCH=x86-64-modern
    ②.然后在目录src的文件下就会生成pikafish.exe
    ③.因为编译的是modern指令集的,所以重命名成pikafish-modern.exe


    ④.关于①的其他指令集的命令分别是
        make build ARCH=x86-64-avx2
        make build ARCH=x86-64-bmi2
        make build ARCH=x86-64-avx512
        make build ARCH=x86-64-vnni512
        还有安卓的
        make build ARCH=armv7
        make build ARCH=armv8
        如果还想看别的指令集的话,make help 命令就可以看其他的指令集编译命令。


再次,谢谢大家。
本帖最近评分记录: 3 条评分 金币 +25
无名其实 金币 +10 2022-11-18 感谢分享技术贴
棋中兔兔 金币 +5 2022-11-18 优秀文章,必须支持一下~
xxx 金币 +10 2022-11-17 优秀文章,学习了,感谢分享
级别: 四级士官
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
180
金币
232
威望
0
贡献值
0
乐币
0
主题
0
只看该作者 67楼 发表于: 04-19
感谢您的付出2,棋中有你更精彩
级别: 三级士官
[棋中红钻1级]发帖数量≥10篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
39
金币
106
威望
0
贡献值
0
乐币
0
主题
2
只看该作者 66楼 发表于: 2023-09-12
这个教程太笼统了  学不了
级别: 上尉
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻3级]金币数量≥2000枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1121
金币
2246
威望
0
贡献值
0
乐币
4
主题
0
只看该作者 65楼 发表于: 2023-09-07
回 62楼(风的线条) 的帖子
手机引擎难搞,要安装的东西多,编译不出来!
306275732@qq.com
级别: 伯爵
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1615
金币
15012
威望
0
贡献值
6
乐币
26
主题
480
只看该作者 64楼 发表于: 2023-09-06
官方的好是好,就是很久没有更新了,我们等得好辛苦
计算永远是下好棋的不二法则
https://www.ixigua.com/channel/dianying
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
264
金币
741
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 63楼 发表于: 2023-09-06
那个傻瓜式高级编译教程里面写的,照着做还是能编译成功的.
舟遥遥以轻扬  风飘飘而吹衣
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
264
金币
741
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 62楼 发表于: 2023-09-06
皮卡鱼傻瓜式高级编译教程,里面的,我只是搬运工,还没学会改呀改的.
3、下载皮卡鱼源码和nnue权重
      https://codeload.github.com/PikaCat-OuO/Pikafish/zip/refs/heads/master
      https://github.com/official-pikafish/Networks/releases/download/master-net/pikafish.nnue
      解压提取"src”文件夹 把nnue权重放入后复制到C盘(不可更改"src"名称)
4、下载我制作的编译脚本"jb.sh"文件解压后复制到C盘(不可更改"jb.sh"和文件夹内文件名称)
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
352
金币
931
威望
1
贡献值
0
乐币
4
主题
11

只看该作者 61楼 发表于: 2023-09-06
回 59楼(风的线条) 的帖子
Jb.sh是什么JB ? 那是非法文件,你想一辈子背着吗?你如果只是复制粘贴,那从我的第二步开始,一次性粘贴就可以,只剩两步了。如果只在本地自用,压缩命令可用可不用,为了上传下载方便才压缩的,现在是大容量硬盘了,多出几百KB无关紧要。
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
352
金币
931
威望
1
贡献值
0
乐币
4
主题
11

只看该作者 60楼 发表于: 2023-09-05
回 58楼(棋中七胜) 的帖子
请参阅我昨晚上在本人帖子上发的简要说明。总共三步,两行命令,一分钟完成。
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
264
金币
741
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 59楼 发表于: 2023-09-05
是您把目录多搞了一层pikafish吧,make[1]: Leaving directory '/c/pikafish/src',是
c:/src
c:/jb.sh
然后在
c:/
直接编译,试试看能不能成功了.
舟遥遥以轻扬  风飘飘而吹衣
级别: 三级士官
[棋中红钻1级]发帖数量≥10篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
86
金币
975
威望
0
贡献值
0
乐币
19
主题
1
只看该作者 58楼 发表于: 2023-09-05
今天自编译出错了

nnue/features/half_ka_v2_hm.h:110:90: error: variable 'std::array<std::array<std::array<std::array<u
nsigned char, 90>, 2>, 2>, 2> v' has initializer but incomplete type
  110 |         std::array<std::array<std::array<std::array<std::uint8_t, SQUARE_NB>, 2>, 2>, 2> v{}
;
      |                                                                                          ^
nnue/features/half_ka_v2_hm.h: At global scope:
nnue/features/half_ka_v2_hm.h:109:5: error: 'constexpr const std::array<std::array<std::array<std::a
rray<unsigned char, 90>, 2>, 2>, 2> Stockfish::Eval::NNUE::Features::HalfKAv2_hm::IndexMap' has inco
mplete type
  109 |     IndexMap = []() {
      |     ^~~~~~~~
make[1]: *** [<builtin>: benchmark.o] Error 1
make[1]: Leaving directory '/c/pikafish/src'
make: *** [Makefile:843: build] Error 2

级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
352
金币
931
威望
1
贡献值
0
乐币
4
主题
11

只看该作者 57楼 发表于: 2023-09-04
回 50楼(六维演易) 的帖子
我说一分钟搞定,是只编译适合自己的那一支。如果想分享出去,win、mac、andro 一系列都编译,那就显得有些费时费力了,因为本地编译只能一支一支往下跑。云编译才能一分钟搞定,如果你平时架构好了,只等源码更新,什么运行工具都不须要,利用开源网站提供的高效服务器和各种便捷功能,所有任务后台同时进行!大家能轻松上开源网站了,就可以学这个。
级别: 上尉
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻2级]金币数量≥1000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻1级]贡献值数量≥1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1073
金币
1089
威望
1
贡献值
2
乐币
10
主题
19
只看该作者 56楼 发表于: 2023-09-04
回 55楼(星雨星) 的帖子
谢谢,看到了,不错,慢慢学习。
级别: 上尉
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻4级]金币数量≥5000枚 [棋中蓝钻3级]乐币数量≥100枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1576
金币
6148
威望
0
贡献值
5
乐币
384
主题
4
只看该作者 55楼 发表于: 2023-09-04
回 53楼(唯此为大) 的帖子
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
264
金币
741
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 54楼 发表于: 2023-09-04
Pikafish-master文件夹里面,都自带一个README.md说明文件的,打开翻译一下就是了
舟遥遥以轻扬  风飘飘而吹衣
级别: 上尉
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻2级]金币数量≥1000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻1级]贡献值数量≥1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1073
金币
1089
威望
1
贡献值
2
乐币
10
主题
19
只看该作者 53楼 发表于: 2023-09-04
回 52楼(六维演易) 的帖子
官网的编译方法在哪里?给点提示。
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
352
金币
931
威望
1
贡献值
0
乐币
4
主题
11

只看该作者 52楼 发表于: 2023-09-04
回 51楼(唯此为大) 的帖子
别被人骗了,哈用都没有!我没骗你,还是要学会上官肉,不然都是别人给你的链接,你都不知道更新了什么,或者官方又撤回了。
级别: 上尉
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻2级]金币数量≥1000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻1级]贡献值数量≥1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1073
金币
1089
威望
1
贡献值
2
乐币
10
主题
19
只看该作者 51楼 发表于: 2023-09-04
回 50楼(六维演易) 的帖子
我反复试过了,这一步就是为了让编译出来的引擎记住权重的文件名。
即使用一个源码文件不支持的权重文件,也能编译出引擎来,但是这个引擎不能用这个不支持的权重跑起来,需要换成支持的权重文件来运行。
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
352
金币
931
威望
1
贡献值
0
乐币
4
主题
11

只看该作者 50楼 发表于: 2023-09-04
引用
引用第39楼唯此为大于2023-01-31 19:25发表的  :
2、编译皮卡鱼引擎。先复制皮卡鱼的权重文件pikafish.nnue放到src目录文件下,然后再编译
==============================
这是让引擎记住这个权重文件名还是记住文件内容?这个权重文件以后还可以用其他权重文件替换吗?

为什么要把权重文件复制到src文件夹呢?有的人还要解压后复制进去!真的笑死人了,这不是填重填堵吗?权重文件叫高效可更新神经网络,不要通过cpu到gpu再传回cpu,是独立评估小系统,你复制进去编译起什么作用呀!如果还有人教你这样做,说明他只是这里复制一点那里复制一点,东拼西凑。硬要把简单的事情搞复杂。两行命令就够了,总共三步,一分钟搞定!此帖安卓编译说得不够清楚,可能什么傻瓜式也语焉不祥,我看了一下有人回复,就知道怎么回事了。

级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
352
金币
931
威望
1
贡献值
0
乐币
4
主题
11

只看该作者 49楼 发表于: 2023-09-03
回 29楼(其中晕人) 的帖子
兄弟,你当时与他可是同学呀
快速回复

限56 字节
请不要在回贴只采用字母:“ PP、asdfhjkl、HAO、OK、ddddddd ......”。  请不要在回贴过于简单的内容:“不错、顶、支持、厉害、呵呵、靠、晕........”
 
验证问题: 我们的论坛名字是?
上一个 下一个