Skip to content

05 瓶颈归因:计算、带宽、容量、通信、I/O 与排队 ​

Trace 或 profiler 给出的是事件、热点和驻留对象;瓶颈归因要进一步解释,哪一类资源约束正在限制端到端指标。归因必须能够被下一组对照推翻,不能只根据一个耗时占比给优化方案。

从现象建立可证伪归因 ​

先把关键路径上的现象映射到候选瓶颈,再指定下一项判别证据。多个类别可以同时存在,但第一轮只选择最可能限制目标指标的一项验证。

瓶颈类别常见现象下一项判别证据不应直接推出
计算核心算子持续占据关键路径FLOPs、Tensor Core 路径、kernel 时间与调用次数算子耗时占比高就必须重写 kernel
带宽数据量增加时延迟近似线性增长bytes、带宽利用率、算术强度和缓存命中GPU 利用率低就是显存带宽受限
容量OOM、并发下降或频繁驱逐活跃对象、峰值驻留、碎片与回收事件reserved memory 等于有效状态量
通信collective 或同步暴露在关键路径payload、频率、每 rank 时间、拓扑和 overlap 窗口多卡扩展差只由网络带宽造成
I/OGPU 等待输入、产物或状态搬运读取/解析/H2D/回写阶段时间与队列深度文件读取慢就是端到端主瓶颈
排队TTFT/P99 上升但单次计算稳定到达轨迹、queue wait、准入和批次状态增大 batch 一定提高服务效率

通信暴露是归因案例,不是独立路线 ​

多卡吞吐未按卡数增长时,应把 collective、同步、数据搬运与计算放到同一时间线上。通信持续时间只是原始成本;只有没有被计算隐藏的部分进入关键路径时,才构成暴露通信瓶颈。

观察可能原因对照方式
collective 持续时间升高payload、拓扑或调用频率变化固定模型和 global batch,对齐消息字节与 collective 次数
计算前后出现空洞同步、依赖或发起时机查看 stream、事件依赖和每 rank 时间线
overlap 窗口缩小可重叠计算不足或调度次序变化比较通信时间、可重叠窗口和 exposed time
尾部 rank 持续落后数据、路由或硬件负载不均记录每 rank 阶段时间与 payload 分布

通信等待与计算重叠

项目出口与相关阅读 ​

本页输出“目标指标 → 关键路径事件 → 瓶颈类别 → 判别实验”,再交给性能优化选择候选。通信分支可从 47 NCCL 通信性能分析 取得 trace;训练、推理和 I/O 分支分别回到对应机制页取得对象账本。

相关阅读:PyTorch Profiler 文档、NCCL 用户指南。

Released under the MIT License.