bench/bin_float 教程

本页介绍如何运行二进制算术与初等函数基准测试以及平方自动调优实验,并说明如何解读其输出。该套件在相同输入上以配对测量比较不同的实现路径;工具集与产物格式见 bench 教程。

快速入门

在仓库根目录下:

just bench bin-float
just bench elementary
just bench auto-tune

运行器在 native 目标上以 release 模式执行 src/bench/bin_float 中被跳过的性能测试,并写出 .tmp/bench/SUITE.jsonl(全部观测值)和 .tmp/bench/SUITE.analysis.txt(归约后的行),其中 SUITE 是传给 just bench 的名称。

日常任务

阅读分析行

分析文件中,算术部分为 MAREMARK_HOTSPOT=bin-float/OP/DATASET core_pct=… full_pct=… 行,初等函数部分为 MAREMARK_HOTSPOT=bin-float/elementary/OP/DATASET full_pct=… 行,平方实验则为 MAREMARK_TUNE、MAREMARK_CROSSOVER 和 MAREMARK_POLICY 行。core_pct 值是 core 路径与内核之间配对差值的中位数,以内核中位耗时的百分比表示;full_pct 同理,是 checked 路径相对 core 路径的差值。正值表示较高层更慢。

只检查计划而不测量

sh tools/run_moon_clean_exec.sh test src/bench/bin_float --target native

只运行计划测试,这些测试会编译每个规格。

深入了解

  • 在 *_test.mbt 文件中修改数据集或实现;请保留参考预言机,使更快但错误的路径导致运行失败。
  • 仅当两次运行记录的环境一致时才比较它们。
  • 性能审计 和 performance/ 页面汇总了实测结果。

常见陷阱

  • 基准测试在常规 moon test 运行中被跳过;请使用 just bench。
  • 结果依赖于机器;百分比比绝对微秒数更稳定。

后续步骤