ai-infra-interview-305

第 15 题:如何profile PyTorch模型的性能?torch.profilernvprof的使用经验?

题目

如何profile PyTorch模型的性能?torch.profilernvprof的使用经验?


完整讲解

一、torch.profiler 能干什么?

torch.profiler(或旧版 torch.autograd.profiler.profile)在 Python 侧记录:每个算子的 CPU/GPU 时间、调用次数、显存分配/释放、以及(若开 CUDA)kernel 级信息。可配合 Chrome Trace(tensorboard 的 trace viewer)看时间线,或导出表格做「谁最慢」的排序。


二、看什么、怎么优化?


三、nvprof / Nsight 系列(nvidia 工具)

经验:先 torch.profiler 看「哪一段、哪个 op 慢」和「CPU/GPU 谁在等」;再 Nsight Systems 看时间线 gap;最后对关键 kernel 用 Nsight Compute 抠指标。


四、简要对比

工具 层级 典型用途
torch.profiler Python/op 哪个 op 慢、显存、CPU/GPU 占比
Nsight Systems 进程/线程/kernel 时间线、gap、谁在等
Nsight Compute 单 kernel occupancy、带宽、roofline
nvprof kernel/API 旧卡粗略 timeline(逐渐被替代)

面试要点


记忆要点

  1. torch.profiler:Python/op 级,activities/record_shapes/profile_memory,Chrome Trace 看时间线。
  2. 优化顺序:profiler 找慢 op 和 gap → Nsight Systems 看时间线 → Nsight Compute 抠关键 kernel。
  3. nvprof 旧;Nsight 是当前推荐 GPU 工具链。
返回模块 返回总览