dzmingli_vs_floating/bench_common 教程
本页运行 dzmingli_vs_floating 的 bench_common 可执行程序,保存其记录,并在你读取数字之前检查运行是否完整。
快速开始
在仓库根目录执行:
moon run --release src/dzmingli_vs_floating/bench_common --target native \
| sed -n '/^{/p' > artifacts/dzmingli_vs_floating/common_digits.jsonl
该命令为 native 编译 release 版本,对照预言机校验每个数据集,测量两个实现,并写出 artifacts/dzmingli_vs_floating/common_digits.html。用浏览器打开该 HTML 文件。
日常任务
记录主机信息
Mare Mark 只记录你提供的事实。在命令行上设置它们:
MARE_CPU="Apple M4" MARE_OS="macOS 26.5" MARE_BUILD_MODE=release \
moon run --release src/dzmingli_vs_floating/bench_common --target native
未设置的变量记录为 unknown 或 unspecified。
检查运行是否完整
每条 Mare Mark summary 记录都必须包含 "complete":true,每条 validation 记录都必须有 "status":"valid"(对 DzmingLi,规模扩展运行中从 4,096 位起的失败是预期的):
grep -c '"type":"validation"' artifacts/dzmingli_vs_floating/common_digits.jsonl
grep '"type":"validation"' artifacts/dzmingli_vs_floating/common_digits.jsonl | grep -vc '"status":"valid"'
阅读比较记录
每一行 "comparison" 对应一种运算和一个规模。*_median_us 字段是每次运算的中位微秒数,加速比字段是 GDA 中位数除以 DzmingLi 中位数,decision 应用 3 % 阈值。
进阶
用 tools/ 中的 Python 布局从 JSONL 渲染出版用图,见包教程。要改变规模或运算,请编辑 main.mbt;库函数以运算列表和展开后的规模列表为参数。
常见陷阱
- 使用
--release和--target native运行。调试构建和其他目标不会产生可比较的数字,其他目标根本不会运行。 - 不要把来自不同目标或主机的记录合并到一份报告中。
- 在完整报告之后以非零状态退出,意味着有校验失败;这并不是测量崩溃。