概述

当模型训练过程中吞吐量(系统在单位时间内处理数据的数量)指标不达标时,可以采集训练过程中的profiling数据来分析是哪个环节、哪个算子导致的性能消耗。基于NPU的PyTorch在模型训练时,算子通过PyTorch框架多次分发后,调用AscendCL接口,然后经过CANN层编译和GE/FE等模块的处理,最终在NPU上计算执行。

针对这一系列的流程,我们提供了三种不同层次的profiling方式,记录不同层面的性能数据,分别是PyTorch profiling、CANN profiling和E2E profiling(推荐)

三种profiling的关系如下图所示。

图1 3种Profiling关系示意图