Skip to content

01 性能问题与 Benchmark 基础 ​

页面目标 ​

性能工程的第一步不是寻找“最快的技巧”,而是把“慢、放不下或服务质量差”写成可复查的策略比较问题。一次结果只有在 workload、硬件和比较对象明确时,才有资格参与后续判断。

本页建立统一测量契约:同一问题使用同一模型、输入分布、dtype、运行环境和质量门槛,比较 baseline 与 candidate 的变化,而不是把不同条件下的单次耗时放在一起。

核心机制:策略比较由什么组成 ​

要素需要固定或记录的内容缺失时会发生什么
workload模型、任务、输入长度、batch、并发、输出长度与数据分布“更快”可能只来自更轻的输入
环境硬件、软件版本、backend、dtype、并行与缓存状态结果无法复现,也无法归因
指标训练 step time / throughput / peak memory;推理 TTFT / TPOT / P99 / 并发平均耗时掩盖尾延迟或容量问题
对照baseline、candidate、warmup、重复次数和失败状态单次波动被误写成优化收益
约束质量、安全、正确性、SLO 与预算性能提升可能以不可接受的退化换来

训练、推理、Serving 和多卡运行可以使用不同指标,但都遵循同一判断:先固定比较条件,再比较候选策略,最后确认收益没有越过质量或成本约束。计时、trace 与回归如何取得,由性能分析专题负责;本页只规定这些证据进入决策时必须带上的上下文。

显存、I/O 和时间应使用同一份比较契约,但各自保留不同字段:容量问题记录对象与峰值,I/O 问题记录传输或等待是否落在关键路径,时间问题记录阶段和 wall time。这样“装不下”“加载慢”和“吞吐下降”才能被放进同一轮候选比较,而不会被误写成同一种瓶颈。

问题类型最小观测字段与候选比较时不可省略的字段
训练状态容量对象、生命周期、peak allocated / reserved、OOMstep time、吞吐、质量、重算/搬运/通信代价
推理状态容量长度、并发、KV 每 token 成本、peak memoryTTFT、TPOT、P99、命中/驱逐与质量
输入、加载或状态 I/Obytes、阶段时间、CPU 等待、H2D/D2H/网络事件是否在关键路径、是否有效 overlap、冷启动/steady-state 区分
通信与多卡collective、消息大小、通信暴露、负载扩展效率、容量收益、稳定性和拓扑条件

容量证据还需要一份跨训练与推理共用的资源账本。账本不把所有对象相加成一个静态数字,而是记录对象在什么阶段创建、与谁同时驻留、何时释放,以及候选策略把代价转移到了哪里。

资源对象主要生命周期容量证据必须配对的代价证据
模型参数与产物加载、转换、常驻、卸载文件大小、加载峰值、allocated / reserved冷启动、转换时间、执行后端与质量
activation、梯度与优化器状态forward、backward、updatesaved tensors、阶段峰值、OOM 位置重算、搬运、step time、收敛与恢复
KV 与请求状态Prefill、Decode、复用、驱逐、回收每 token / 请求容量、block 利用率、并发上界TTFT、TPOT、P99、命中与驱逐代价
workspace 与通信缓冲区kernel 或 collective 执行窗口临时峰值、reserved、bucket / buffer 大小kernel 时间、通信暴露与扩展效率
输入、状态交接与输出读取、预处理、H2D / 网络传输、回写bytes、队列深度、缓存占用等待是否位于关键路径、回压与失败

理论字节数用于提出容量假设,运行时峰值和时间线用于验证假设;二者不能互相替代。对象账本进入 Task2–4 后再按训练状态、推理状态和 I/O 关键路径展开。

性能候选比较契约

判断框架:从现象到策略问题 ​

观察到的现象先写成的策略问题优先进入
训练 step 变长峰值对象与阶段代价能否在质量门槛下重新平衡?Task2;归因不足时回到性能分析
推理吞吐不足状态容量、复用或并发预算是否值得调整?Task3;服务机制回看推理优化
峰值显存超预算哪类驻留对象可被压缩、重算、搬运或分摊?Task2 或 Task3
多卡收益不明显已确认的通信等待能否通过切分、拓扑或 overlap 降低?Task4;并行机制回看通信与分布式

因此,benchmark 的输出不是一个数字,而是一条可进入策略比较的假设:例如“固定序列长度后,candidate 的峰值显存下降,但 TPOT 退化;需要判断这项交换是否仍满足服务约束”。

连接到 Part00–02 ​

作用入口本页如何使用
CPU / CUDA 时间和显存的最小读法Part00 · 17 Profiling、18 Memory Profiling、20 性能证据与实验设计将现象转成时间、驻留或失败证据,再形成单变量实验
数量级预估Part01 · 01 dtype 与精度、02 参数与 FLOPs在运行前确认容量和计算量是否合理
真实 baselinePart02 · 66 推理性能对比、73 训练性能分析复用统一 workload、结果 JSON 和 evidence level

项目出口 ​

完成本页后,应产出一份候选比较契约:环境、workload、baseline、核心指标、质量门槛、重复规则、失败记录位置和停止条件均已写清。下一页读取性能分析已经形成的 trace、profile 与归因证据,再筛选值得比较的 candidate。

Released under the MIT License.