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。 会被拒绝;请使用正值。- 只解读单个样本。 请查看大量样本的中位数和离散程度。
后续步骤
- perf_runner API:所有参数。
- perf 教程:
moon bench。