Skip to content

Profiling 正文

这页只做 profiling 问题的判断框架:不重复 intro 的路线入口,也不写 walkthrough 的连续故事。

使用顺序

先用第一张表判断问题类别,再用第二张表检查证据是否足够,最后把结果交给 05 -> 06。如果还不能回答“改善了什么、付出了什么代价、是否可复现”,就停留在取证阶段,不进入优化决策。

判断表

先分清问题在时间热点、memory timeline、通信等待还是 benchmark 验证,再判断证据链是否足够支撑下一步动作。

现象优先判断先看哪条线常见动作
系统变慢了,但不知道慢在哪time hotspot02先看 operator、trace、阶段拆分
时间和显存一起波动memory residency03看 allocation、residency、timeline
多卡收益不稳wait / overlap mismatch04看同步等待、communication trace
before / after 结果说不清benchmark gap05, 06回到 workload 和回归验证
检查项主要回答什么常见误判
时间热点慢点是不是已经被定位清楚看一眼 trace 就下结论
memory timeline时间问题是不是伴随显存驻留问题看显存高就直接去省显存
communication wait多卡是不是在等而不是在算多卡慢就一定是算子问题
benchmark这次优化是不是可复现、可比较before / after 口径不统一

本节要点

这页的职责不是教工具按钮,而是把 profiling 里最常见的判断点压成一张表。路线入口留给 intro,连续故事留给 walkthrough

最小决策模板

记录 现象 -> 假设 -> 证据 -> before / after -> 动作 五个字段。缺少其中任一字段时,结论应标记为“待验证”,而不是直接写成“优化成功”。

Released under the MIT License.