首页/新闻资讯/正文详情

perft、bench、eval、speedtest:Reckless六大调试命令全解析与引擎测试入门

发布时间:2026/11/4 2:05:03 来源:云帆数科 栏目:资讯中心
perft、bench、eval、speedtest:Reckless六大调试命令全解析与引擎测试入门
【免费下载链接】RecklessCompetitive chess engine written in Rust项目地址https://gitcode.com/gh_mirrors/rec/Reckless点击查看免费下载Reckless 是一款用 Rust 编写的竞技国际象棋引擎内置了一整套实用的调试与测试命令。本文带你一次看懂perft、bench、eval、speedtest、d、compiler六大调试命令帮助新手快速完成引擎测试入门掌握国际象棋引擎开发中最常用的验证方法。 六大调试命令速览除了标准 UCI 协议命令外Reckless 还扩展了若干专用命令定义见 src/uci.rs命令作用典型场景perft depth统计指定深度下的所有合法走法节点数验证走法生成器正确性bench [Hash] [Threads] [Depth]对 50 个固定局面做基准搜索回归测试、性能对比eval打印 NNUE 神经网络对当前局面的评估细节调试评估网络speedtest Threads Hash Seconds按时间跑 50 个局面测量引擎真实速度d以 ASCII 棋盘 FEN 打印当前局面快速查看局面状态compiler打印编译器的版本、目标与特性确认构建配置所有命令都可以通过命令行参数直接运行例如make # 构建引擎 ./reckless perft 3 # CLI 模式执行后自动退出Reckless 支持两种运行模式不带参数启动时进入Uci 模式从 stdin 逐行读命令适合配合 GUI带参数启动时进入Cli 模式执行完命令后自动退出见 src/uci.rs。 perft走法生成器的单元测试perft是国际象棋引擎开发中最经典的正确性测试——引擎会从当前局面出发枚举指定深度内的所有合法走法组合并统计叶子节点数量。只要走法生成器有一处错误节点数就会对不上问题立刻暴露。./reckless perft 5输出是一张逐走法明细表每一行对应根节点的一手棋显示该走法分支下的Nodes、耗时Elapsed与kN/s最后一行Total为总数表格实现见 src/tools/perft.rs。新手入门建议从初始局面跑perft 4~perft 5耗时短、见效快先改走法生成相关代码如 src/board/movegen.rs再跑 perft 对比改动前后的节点数项目还内置了两个变体simpleperft depth只输出每手棋的计数输出更简洁和islegalperft depth通过逐条校验合法性来计数可用于交叉验证走法生成见 src/tools/perft.rs 技巧把改动前后的 perft 结果保存下来做 diff哪个分支的节点数变了问题就在哪一手。 bench一条命令验证引擎一致性与速度bench是引擎开发者的回归测试神器它内置50 个精心挑选的固定局面含残局、Chess960 开局等列表见 src/tools/bench.rs对每个局面做固定深度的搜索最后汇总节点数与速度./reckless bench # 默认 Hash16, Threads1, Depth12 ./reckless bench 16 1 14 # 自定义Hash(MB) 线程数 深度输出末尾会打印一行总结例如Bench: 123456789 nodes 1234567 nps两个核心用法一致性验证修改代码后跑bench如果nodes数与改动前不同说明你的修改影响了搜索行为——这正是大多数静默 bug被发现的地方设计思路见 src/tools/bench.rs 的模块注释粗略性能对比对比不同构建如 AVX-512 与通用版的nps。注意官方也提示bench 的速度数据仅供参考不能当作最终定论 eval透视 NNUE 神经网络的内心活动Reckless 使用 NNUE增量更新神经网络作为评估核心。eval命令可以打印当前局面下网络评估的完整细节实现见 src/uci.rs包括三部分输出区块含义NNUE derived piece values棋盘上每个棋子各自对评估的贡献值一目了然NNUE output buckets8 个输出桶的评估值当前局面使用的是哪个NNUE evaluation最终评估分白方视角单位分数/100 兵使用流程./reckless position fen r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1 eval当你对引擎为什么走这步棋感到困惑时eval能帮你定位到底是哪个棋子、哪类局面残局/中局桶在主导评估结果是调试神经网络的最佳入口源码位于 src/nnue.rs。⚡ speedtest测量引擎真实作战速度bench跑的是固定深度而speedtest模拟的是真实对局的时间压力将总时长均分到 50 个局面每个局面限时搜索统计单位时间内的节点吞吐实现见 src/tools/speedtest.rs./reckless speedtest # 默认 1 线程、16MB Hash、120 秒 ./reckless speedtest 8 128 300 # 8 线程、128MB Hash、跑 300 秒它的贴心设计值得新手学习3 个局面热身正式计时前先跑 3 个位置避免冷启动影响数据自动打印环境信息引擎版本、编译器版本/目标/特性、线程数与 Hash 大小方便复现测试条件末尾汇总Total nodes、Total time (sec)、Nodes/second对比优化前后如调整 SIMD 指令集支持相关实现在 src/nnue/simd/的速度提升speedtest是最有说服力的工具。 d 与 compiler两个随手可用的小帮手d—— 局面可视化打印 ASCII 棋盘和 FEN实现见 src/board/parser.rs------------------------ | r | b | q | b | k | b | n | r | 8 ------------------------ ... FEN: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1调试中执行了几手棋后用d一眼确认引擎看到的局面和你预期的是否一致排查position解析类 bug 必备。compiler—— 构建信息确认打印编译器的版本号、目标平台target和启用的特性如 AVX-512实现见 src/uci.rs。当性能异常时先确认跑的是不是预期的二进制——这是新手最容易忽略的一步。 引擎测试入门推荐的练习工作流把六大命令串起来就是一套完整的引擎测试流程改动走法生成→ 跑perft 4/perft 5节点数必须不变 ✅任意改动后→ 跑benchnodes数应保持与改动前一致除非你刻意改变了搜索行为评估异常→ 用d确认局面无误再用eval逐棋子排查性能优化验证→speedtest 8 128 300对比优化前后的Nodes/second性能异常怀疑构建问题→compiler核对目标与特性这套正确性优先、性能其次的方法论同样适用于其他国际象棋引擎项目。动手试试吧——从./reckless perft 4开始你的引擎测试之旅❓ 常见问题Q命令参数顺序记混了怎么办bench的顺序是Hash Threads Depthspeedtest的顺序是Threads Hash Seconds注意前两者恰好相反。参数缺省时自动使用默认值无需全部提供。Qperft 深度可以开到多大节点数随深度指数级增长perft 6在初始局面就要数千万节点。日常验证 4~5 层即可追求更深度可换用simpleperft减少输出开销。QCli 模式和 Uci 模式输出有区别吗有的。在 Uci 模式下执行bench会输出带表格的详细逐局面报告Cli 模式则只输出一行Bench: ... nodes ... nps的简洁结果见 src/uci.rs。赞分享【免费下载链接】RecklessCompetitive chess engine written in Rust项目地址https://gitcode.com/gh_mirrors/rec/Reckless点击查看免费下载相关推荐Hermes 引擎惰性编译与调试器 eval 编译Lazy/Eval Compilation实现详解Hermes 引擎惰性编译与调试器 eval 编译Lazy/Eval Compilation实现详解 导读 本文基于 Hermes 仓库的 LazyEval语言运行时编译器解释器JIT编译内存管理移动开发Bench更强大的命令行基准测试工具Bench更强大的命令行基准测试工具 项目介绍 Bench 是一个基于 Haskell 的 criterion 库开发的命令行工具旨在提供比传统 timegstack /ship 测试与质量闸门全解析测试框架引导、失败归属分类与 Eval 门禁Steps 4-6gstack /ship 测试与质量闸门全解析测试框架引导、失败归属分类与 Eval 门禁Steps 4 6 在 gstack 的 /ship 全自动发布AI 技能开发工具人工智能AI 评测浏览器控制上一篇Graphite 2024 年度回顾与 2025 展望从 Alpha 原型迈向完整 2D 创作套件的关键一年下一篇libcurl CURLOPT_TIMEOUT 详解为整个传输过程设置硬性超时上限创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

如何免费导出微信聊天记录并永久保存
如何免费导出微信聊天记录并永久保存

如何免费导出微信聊天记录并永久保存 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg 你手机里的几万条微… · 2026/11/4 2:05:03

REA 本地逆向分析:没有源码,如何把 App 行为追到二进制层?
REA 本地逆向分析:没有源码,如何把 App 行为追到二进制层?

REA 本地逆向分析:没有源码,如何把 App 行为追到二进制层? 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea REA&… · 2026/11/4 2:05:03

不手写 API 文档:用 Trae Agent 从 docstring 一路生成 OpenAPI
不手写 API 文档:用 Trae Agent 从 docstring 一路生成 OpenAPI

不手写 API 文档:用 Trae Agent 从 docstring 一路生成 OpenAPI 【免费下载链接】trae-agent Trae Agent is an LLM-based agent for general purpose software engineering tasks. 项目地址: https://gitcode.com/gh_mirrors/tr/trae-agent 发版前&#xff… · 2026/11/4 2:05:03

高效学习日记:提升知识留存与认知迭代的实践指南
高效学习日记:提升知识留存与认知迭代的实践指南

1. 项目概述"学习日记(2026年3月26日)"这个标题看似简单,实际上蕴含着一个高效学习者的完整知识管理体系。作为一名坚持写学习日记7年的实践者,我发现这种记录方式远比普通笔记更能提升学习效果。2026年3月26日这天的学… · 2026/11/4 2:54:20

智能汽车安全威胁全景:从API滥用、AI投毒到跨域攻击
智能汽车安全威胁全景:从API滥用、AI投毒到跨域攻击

1. 智能汽车与泛终端安全威胁全景解析作为一名在汽车电子安全领域摸爬滚打十年的老兵,我亲眼见证了车载系统代码量从百万行激增到上亿行的过程。记得2016年参与某德系品牌ECU开发时,我们还在为CAN总线加密算法争得面红耳赤,如今却要面对整车数… · 2026/11/4 2:54:20

软考数据库系统工程师复习:三层知识地图与易漏点清单
软考数据库系统工程师复习:三层知识地图与易漏点清单

简介:面向软考数据库系统工程师考试的复习资料完全版,适合备考中级资格的在职开发者与计算机专业学生系统梳理考点。全书以单一 docx 文档整合十五章内容,压缩包约 2.93MB、共 1 个文件,按章节顺序编排,并附页码目录&a… · 2026/11/4 2:54:20

MySQL数据查询实验训练2:六类SQL查询骨架与避坑
MySQL数据查询实验训练2:六类SQL查询骨架与避坑

简介:这份PDF实验指导书对应国家开放大学MySQL数据库应用课程实验训练2,聚焦数据查询操作,适合正在学习SQL基础、需要按实验步骤完成课堂练习与课后复盘的初学者。内容围绕字段查询、多条件筛选、DISTINCT去重、ORDER BY排序、GROUP BY分组及… · 2026/11/4 2:54:20

2026实时录音转文字工具实测与优化指南
2026实时录音转文字工具实测与优化指南

1. 录音转文字技术现状与需求分析2026年的实时录音转文字市场已经进入成熟期,各类工具在准确率、响应速度和成本控制方面都有了显著提升。作为长期关注语音技术发展的从业者,我最近对市面上主流的7款工具进行了为期3个月的深度测试,发现不同工… · 2026/11/4 2:54:20

MySQL复合查询实战:从基础到高级优化
MySQL复合查询实战:从基础到高级优化

1. 复合查询基础概念解析MySQL中的复合查询是指通过组合多个简单查询语句构建更复杂的数据检索操作。这种查询方式在实际业务场景中极为常见,特别是当我们需要从多个维度分析数据或处理关联性较强的数据集时。复合查询的核心价值在于它能够:合并多个查询… · 2026/11/4 2:53:20

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码