跳转至

图表复现

从存档重画图不需要 GPU;运行新测量需要匹配的设备、依赖和计时范围。下文分别给出操作步骤。

无 GPU 重画

python -m pip install matplotlib==3.11.1 numpy==2.4.4
python tools/verify_benchmark_evidence.py
python -m benchmarks.common.plot_docs_results --root benchmarks/evidence_snapshot/output
python tools/verify_benchmark_evidence.py --zip docs/assets/results/evidence.zip

重画全部已注册 case

mkdir -p output/chart-reproduction
cp -R benchmarks/evidence_snapshot/output/roofline output/chart-reproduction/
python -m benchmarks.common.plot_cases --root output/chart-reproduction/roofline
python -m benchmarks.common.plot_collections --root output/chart-reproduction/roofline --report-output output/chart-reproduction/report.png --showcase-output output/chart-reproduction/showcase.png --interactive-report-output output/chart-reproduction/report.html

重画环境为 Python 3.12.3、Matplotlib 3.11.1、NumPy 2.4.4。SVG 去除时间戳并固定元素 ID;同一环境下字节稳定。跨平台字体差异可能改变排版,因此不保证跨字体环境的 SVG 字节一致。输入校验使用 SHA-256。

output/chart-reproduction 应使用新目录,避免把旧图误当本次产物。这里只写派生图片,不修改存档数值;退出码非零表示不能完成重画。

图表清单

图 比较内容 必須保留的口径
Sparse relations Prepared Tiga / Torch sparse 拓扑、F、索引 dtype、hot cache
Transformations 四个固定编译器工作负载 各自基线,不是综合分数
Primitive comparisons 固定 manifest panel 每行匹配数学语义与 provider
CPU relations Tiga / SciPy 和 Torch N=16k 与 131k、度 16、16 线程
Edge-NN forward Tiga / 手写与 eager 对标 仅前向,N=262144
Edge-NN memory Eager 中间量 / 融合表示 逐边存储估算,不是实测峰值
Edge-NN backward Compiled / eager autograd 前向+反向;峰值分配是另一指标
GAT Compiled / eager autograd 辅助 GAT case,不是 dense SDPA
Attention Dense、linear、sparse attention 不同工作负载、不同对标,不取平均
Dynamic boundaries 构建、消费、复用、全新管线 单阶段不能标成端到端
Distributed overlap 通信与内部计算 trace 双 CPU 进程、受控延迟、sample 与中位数
Provider comparison(Reference) 同一个 CSR 切片的全部 provider 只测 PyG gather-scatter,不代表所有 PyG 算子

这 12 组 SVG/PNG 均有输入索引,包含精确 JSON 路径与 SHA-256。下载包还包含全部 44 个已注册 case 和自己的 index.json。这些图表生成器不再手抄测量常数。

运行新测量

安装基准依赖,匹配 case 的配置、dtype、设备、provider 版本、warmup、重复次数、seed 和计时边界。先查模块的 --help 再选择参数。以下命令记录一次新测量,不替换存档证据:

PYTHONPATH=python python tools/run_benchmark.py --record output/fresh-smoke/provenance.json --module benchmarks.sparse_compute.weighted_aggregation -- --quick

包装器记录精确命令、UTC 时间、退出码、Git revision、dirty worktree 指纹、包版本、CPU/platform 和可获取的 GPU/驱动信息。不把缺失 seed 或旧 revision 当作已知。实际输出目录与随机 seed 行为仍由基准模块决定;其有效参数和结果应与 provenance 文件一起保存。

将环境和源码元数据与对应测量的样本一起保存。评估新版本性能时,使用匹配对标并重复采样,参见计时协议。

图表与证据覆盖范围

文档生成器覆盖 12 组图和完整矩阵;通用生成器覆盖全部 44 个已注册 case 的 latency 图、43 张 roofline、五个多 case 汇总、dashboard 及静态/交互报告。缺少 roof 校准的 case 有意不生成 roofline。

Operation 汇总每张图最多三个条件,SUMMARY.md 链接全部分页。benchmarks/common/diagnostic_plotting.py 单独处理额外本地 JSON;Tensor fusion 的 kernel-only 与 end-to-end 计时分开呈现。报告使用的输入由 evidence manifest 指定。