floating_vs_decmial_x/bench_common 教程

本页运行 floating_vs_decmial_x 的 bench_common 可执行程序,保存其记录,并在你读取数字之前检查运行是否完整。

快速开始

在仓库根目录执行:

moon run --release src/floating_vs_decmial_x/bench_common --target native \
  > artifacts/floating_vs_decmial_x/common_digits.jsonl

该命令为 native 编译 release 版本,对照预言机校验每个数据集,测量两个实现,并写出 artifacts/floating_vs_decmial_x/common_digits.html。用浏览器打开该 HTML 文件。

日常任务

记录主机信息

Mare Mark 只记录你提供的事实。在命令行上设置它们:

MARE_CPU="Apple M4" MARE_OS="macOS 26.5" MARE_BUILD_MODE=release \
  moon run --release src/floating_vs_decmial_x/bench_common --target native

未设置的变量记录为 unknown 或 unspecified。

检查运行是否完整

每条 Mare Mark summary 记录都必须包含 "complete":true,每条 validation 记录都必须有 "status":"valid"(对 DzmingLi,规模扩展运行中从 4,096 位起的失败是预期的):

grep -c '"type":"validation"' artifacts/floating_vs_decmial_x/common_digits.jsonl
grep '"type":"validation"' artifacts/floating_vs_decmial_x/common_digits.jsonl | grep -vc '"status":"valid"'

阅读比较记录

每一行 "comparison" 对应一种运算和一个规模。*_median_us 字段是每次运算的中位微秒数,加速比字段是 GDA 中位数除以 X 中位数,decision 应用 3 % 阈值。

进阶

用 tools/ 中的 Python 布局从 JSONL 渲染出版用图,见包教程。要改变规模或运算,请编辑 main.mbt;库函数以运算列表和展开后的规模列表为参数。

常见陷阱

  • 使用 --release 和 --target native 运行。调试构建和其他目标不会产生可比较的数字,其他目标根本不会运行。
  • 不要把来自不同目标或主机的记录合并到一份报告中。
  • 在完整报告之后以非零状态退出,意味着有校验失败;这并不是测量崩溃。

下一步