调度性能采集与分析

  1. 参见Ascend PyTorch Profiler完成数据采集,并使用Chrome浏览器的Tracing页面(chrome://tracing/)打开trace_view.json文件。
  2. 在Tracing页面上选定需要分析的一个step端到端的时间,计算调度时间=端到端时间-计算和通信时间,如果计算和通信间有overlap则需要单独分析。

    此处以示例模型的单step为例,进行调度耗时的分析,由于大模型的timeline数据较冗余,故在分析时将整体的一个step切分为前8段前反向计算结果、中16段前反向计算结果、后8段前反向计算结果三段,进行分段式分析,。

    a. 根据profiling数据查看step端到端时间为13.78s。

    图1 查看step端到端时间

    b. 计算流上的任务耗时13.06s。

    图2 查看计算流耗时

    c. profiling中调度耗时的部分为下图中的Free Time所示。

    图3 查看调度耗时
  3. 观察Host与Device侧调度产生的空白间隙。

    a. 观察Device侧流水上的调度间隙,寻找对应时段的事件

    图4 查看调度间隙

    b. 观察Host下发与Device执行的调度曲线,如果多数调度曲线垂直,则说明模型存在下发瓶颈,需要联系华为工程师进行处理。下图为正常下发示例。

    图5 正常调度展示