使用msprof-analyze工具分析性能数据
前提条件
- 完成性能数据采集,得到昇腾NPU环境的性能数据。
- 安装msprof-analyze,命令如下:
pip install msprof-analyze
提示出现如下信息则表示安装成功。
1
Successfully installed msprof-analyze-{version}
执行msprof-analyze分析

以下仅提供操作指导,无具体数据分析。
当前主要对基于通信域的迭代内耗时分析、通信时间分析以及通信矩阵分析为主,从而定位慢卡、慢节点以及慢链路问题。
操作如下:
- 数据准备。
- 执行性能分析操作。
msprof-analyze -m all -d $HOME/profiling_data/
分析结果在-d参数指定目录下生成cluster_analysis_output文件夹并输出cluster_step_trace_time.csv、cluster_communication_matrix.json、cluster_communication.json文件。
集群分析工具的交付件通过MindStudio Insight工具展示,详细操作请参见使用MindStudio Insight工具可视化性能数据。
执行advisor分析
msprof-analyze的advisor功能是将Ascend PyTorch Profiler或MindSpore Profiler采集并解析出的性能数据进行分析,并输出性能调优建议。
命令如下:
msprof-analyze advisor all -d $HOME/profiling_data/
分析结果输出相关简略建议到执行终端中,并在命令执行目录下生成“mstt_advisor_{timestamp}.html”和“/log/mstt_advisor_{timestamp}.xlsx”文件供用户查看。
advisor工具的分析结果主要提供可能存在性能问题的专家建议。
执行compare_tools性能比对
compare_tools功能用于:
- MindSpore训练场景:对比不同框架或其他软件版本下,采集同一训练工程昇腾NPU环境性能数据之间的差异。
- PyTorch训练场景:对比训练工程从GPU迁移至昇腾NPU环境前后的性能差异,或不同版本的昇腾NPU环境性能数据之间的差异。
操作如下:
- 将GPU环境下的性能数据拷贝到昇腾NPU环境。
- 执行性能比对操作。
- MindSpore训练场景:
msprof-analyze compare -d $HOME/2.7.0/profiling_data/ -bp $HOME/2.6.0/profiling_data/ --output_path ./compare_result/profiler_compare
- PyTorch训练场景:
msprof-analyze compare -d $HOME/npu/profiling_data/ -bp $HOME/gpu/profiling_data/ --output_path ./compare_result/profiler_compare
分析结果输出到执行终端中,并在--output_path参数指定路径下生成“performance_comparison_result_{timestamp}.xlsx”文件供用户查看。
性能比对工具将总体性能拆解为训练耗时和内存占用,其中训练耗时可拆分为算子(包括算子和nn.Module)、通信、调度三个维度,并打印输出总体指标,帮助用户定位劣化的方向。与此同时,工具还会在“performance_comparison_result_{timestamp}.xlsx”文件中展示每个算子在执行耗时、通信耗时、内存占用的优劣,可通过DIFF列大于0筛选出劣化算子。此处不提供示例,详细结果介绍请参见《性能比对工具》中的“比对结果说明”。
- MindSpore训练场景: