perf_runner 教程

本页向贡献者介绍如何重放单个基准用例并收集原始计时样本。方法见 perf_runner 设计。

快速上手

moon run src/perf_runner --target native mul_baseline_dense_64

输出是一条包含用例元数据和校验和的诊断记录。

日常任务

检查修改是否保持结果不变

在修改前后分别运行诊断模式,并比较 checksum 字段。校验和相等意味着结果比特完全相同。

收集计时样本

moon run src/perf_runner --target native det_baseline_shifted_16 --repeat 50 --warmup 3 --samples 20

这会在三轮不计时的预热之后打印 20 个样本,每个样本是 50 次调用的平均值,单位为纳秒。

使用自定义 fixture

moon run src/perf_runner --target native det_baseline_shifted_16 --case-file /tmp/my_case.json

该文件必须与用例的元数据和数据集版本相符。

进一步了解

bench/run.py 为每个用例驱动 runner,并计算样本的中位数、p90 和 MAD。

常见陷阱

  • --repeat 0。 会被拒绝;请使用正值。
  • 只解读单个样本。 请查看大量样本的中位数和离散程度。

后续步骤