ai-infra-interview-305

第 75 题:如何profile分布式训练的通信开销?torch.profilerdistributed view?

题目

如何profile分布式训练的通信开销?torch.profilerdistributed view?


完整讲解

一、torch.profiler 与分布式

torch.profiler 支持多进程下的时间线汇总:用 scheduleactivities 等记录各 rank 的 CPU/CUDA 与通信事件,导出 Chrome trace 或用 profiler.key_averages() 看汇总。Distributed 视角:需在各 rank 上一致地 start/stop profiler,并确保记录 NCCL/custom collective 事件(通常通过 CUDA 活动或 backend hook 看到通信 kernel)。

二、看到通信开销的方式

三、实操要点


面试要点


记忆要点

  1. Profiler 开 CUDA 活动可见 NCCL kernel;多 rank 分别导出 trace 对比。
  2. key_averages 看 all_reduce 等占比;group_by_stack_n 看调用栈。
  3. 与 NCCL_DEBUG、record_shapes 一起用,定位多余或过大通信。
返回模块 返回总览