详细排查
详细排查主要围绕下发、通信、计算三类常见问题开展,性能工具的使用请参见模型调优工具。

- 使用msprof-analyze工具初步分析,粗粒度定位性能问题,并为后续的深入分析提供明确的方向,具体请参见模型调优快速分析(msprof-analyze命令行工具)。
- 通过MindStudio Insight工具进一步识别瓶颈点,深入剖析问题根源。具体请参见模型调优深入分析(MindStudio Insight)。
图1 详细排查流程图

下发问题
下发问题是指算子下发过程耗时异常。下发指Graph Engine将算子执行请求下发至Runtime,Runtime判断算子的Task类型,根据类型将算子执行请求下发到Device上执行,详细说明请参考算子编译运行流程。
情况下,NPU侧的计算流水不停运转,不会出现NPU等待CPU的场景,一旦出现下发延迟,将导致流水线阻塞,从而影响AI Core的算力利用率。此时即判定存在下发问题。下发问题主要通过MindStudio Insight工具中时间线(Timeline)进行观察,若存在下列中任一现象,请参考下发异常分析进行分析。
- 覆盖Free Time占比过大:Overlap Analysis中Free Time占比远超Computing和Communication。理想的Free Time占比应在10%以内。
图2 查看Free
- 红框中的HostToDevice连线接近垂直,且蓝框中的Device上相对空闲。
图3 查看连线
- HostToDevice频繁拷贝打断异步流水,造成下发瓶颈。
图4 寻找下发瓶颈
通信问题
通信问题一般指NPU卡间通信存在异常,典型表现为快慢卡或通信带宽远不及预期具体情况请参见MindStudio Insight的集群性能分析,解决方法请参考通信问题优化方案。

- 在大集群场景中,全量集群的Profiling可能会数据量过大,不利于分析,建议使用模型调优快速分析(msprof-analyze命令行工具)中的cluster_analyse(集群分析)工具先对全量Profiling做一遍集群分析,将交付件cluster_analysis_output目录导入MindStudio Insight,观察是否存在明显快慢卡或通信传输问题,再挑选部分感兴趣卡的Profiling,从单卡维度分析。
计算问题
计算问题,即算子性能问题,是深度学习模型中的一个关键挑战,具体表现为部分基础计算单元的执行效率低下,从而影响整个模型的运行速度并造成资源浪费。这类问题需要借助专门的分析工具和代码优化技术来解决。例如,在评估融合算子性能时,可以通过对比不同配置下的计算时间、内存使用量等指标来进行综合判断。具体请参考算子性能问题优化方案来定位与解决。
图8 算子性能问题定位

父主题: 排查思路介绍