Skip to content

01 为什么 Profiling 值得单独成章

页面目标

本节对应 Task0:定义问题与测量对象。你将把“变慢”改写成可以测量、比较和复查的问题,而不是直接从 profiler 图中猜一个热点。

本节的输出是一份最小问题定义:现象、影响指标、待验证假设和需要采集的证据。完成后,带着这份定义进入 Task1 的 baseline 测量。

问题起点

训练和推理里的“慢”,往往有很多表象:

  • step time 变长
  • TTFT 变高
  • 多卡扩展不稳
  • 显存降了但吞吐也掉了

如果没有 profiling,很多结论都停留在“怀疑某个模块慢”,而不是“证明确实慢在这里”。

核心矛盾

profiling 想得到更可靠的判断,但代价是:

  • 采集会更复杂
  • 图和表会更多
  • 更容易被局部热点误导

所以这条专题的关键,不是把工具列全,而是教人怎样建立一条可靠的诊断链。

最小证据链

先写出“现象—指标—假设”,再选择工具。例如“训练变慢”需要先区分 step time 上升、吞吐下降,还是输入管线等待;只有指标确定后,trace 才能验证对应阶段。

记录示例作用
现象step time 从 200 ms 升到 260 ms说明问题范围
假设CPU 到 GPU 的输入搬运增加提供可证伪方向
证据trace 中出现更长的 memcpy 与空闲区间支持或否定假设
对照固定数据和 batch 后重新测量检查归因是否稳定

没有这条链时,profiler 输出只是观察材料,不是瓶颈结论。

可视化入口

正文暂不嵌入未审核图示;相关图册与占位说明见 视觉资产页

对应 Part

本节要点

profiling 的价值在于:它把“感觉慢”变成“证据证明慢在哪里”。

进入下一页

先进入 02 时间拆分与 Trace 阅读,把抽象的性能问题转成可观察的时间区间。

Released under the MIT License.