ai-infra-interview-305

第 182 题:Nsight Systems的timeline分析?如何识别gap

题目

Nsight Systems的timeline分析?如何识别gap


完整讲解

一、Nsight Systems 与 timeline

Nsight Systems:NVIDIA 的系统级性能分析工具,采集 CPU、GPU、CUDA API、kernel、内存拷贝、NCCL 等在同一时间轴上的活动,生成 timeline。可看到 CPU 与 GPU 的并行与串行关系、kernel 起止、拷贝与计算重叠情况,是定位「GPU 等 CPU、等数据、等通信」的首选。

二、如何识别 gap

Gap:timeline 上 GPU 没有 kernel 或拷贝在执行 的空白段,表示 GPU 在该段时间空闲。常见原因:(1)等 CPU:数据未准备好或下一批未提交;(2)等通信:all-reduce 等未完成、同步点;(3)等 kernel 启动:launch 延迟、小 kernel 过多;(4)调度/驱动:上下文切换、排队。识别方法:在 timeline 上找连续空白区间,看其前后是 CPU 活动、NCCL 调用还是 CUDA API;对应到代码的 dataloader、通信或 launch 位置,再针对性优化(如加 prefetch、重叠通信、kernel 融合)。

三、使用要点

采集时用 nsys profile 跑训练/推理,导出 timeline;用 Nsight Systems GUI 或 Chrome trace 打开。关注 GPU 利用率gap 占比;若 gap 多则优先减 gap(数据、通信、launch),再考虑单 kernel 优化。

面试要点


记忆要点

  1. Nsight Systems = 系统级 timeline;CPU/GPU/NCCL 同轴。
  2. Gap = GPU 空闲段;原因多为等 CPU、等通信、launch。
  3. 看 gap 前后对应代码;减 gap 优先于单 kernel 优化。
返回模块 返回总览