CANN msProf性能调优实战:3步快速定位软硬件瓶颈的完整指南
2026/9/21 19:09:54 网站建设 项目流程

CANN msProf性能调优实战:3步快速定位软硬件瓶颈的完整指南

【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs

CANN msProf 性能调优工具是昇腾 AI 处理器官方的一站式 Profiling 采集工具,可自动采集、解析并导出 AI 任务各阶段的关键性能指标,帮助新手和开发者快速定位软硬件性能瓶颈,是提升模型推理与训练效率的必备利器。

📌 一图看懂 msProf:CANN 性能调优的通用选择

msProf 是 CANN 官方推荐的通用场景性能调优命令行工具,一次采集即可覆盖算子耗时、API 耗时、任务调度、迭代轨迹等完整数据,并自动完成解析与导出。不同采集工具的适用场景对照如下:

采集工具适用场景特点
msProf通用场景命令行工具,提供完整的性能数据采集能力(数据类型最全)
msPTI通用场景接口式工具,可集成到各种框架的推理和训练场景
msServiceProfilerMindIE Service 推理服务化场景采集关键过程时间点,支持性能问题快速定界
框架 Profiler(PyTorch / MindSpore / TensorFlow)对应框架场景采集框架层数据,需在 AI 框架编程时调用 Profiling 接口

msProf 的能力边界:不支持采集 Python 调用栈、PyTorch 或 MindSpore 框架层数据,这部分需使用对应框架的 Profiling 接口。各工具选型详情可查阅 performance tuning tool overview。

🚀 一键采集 CANN 性能数据:完整操作步骤

msProf 支持"采集、解析、导出"一键完成,无需手动拼接配置。只需登录装有 CANN Toolkit 软件包的环境,执行一条命令:

msprof --output=/home/HwHiAiUser/profiling_output /home/HwHiAiUser/HIAI_PROJECTS/MyAppname/out/main

参数说明:

参数描述可选/必选
--output收集到的 Profiling 数据的存放路径,默认为 AI 任务文件所在目录可选

⚠️注意--output路径中不能包含特殊字符:\n\f\r\b\t\v\u0007F

命令执行完成后,会在--output指定目录下自动生成PROF_*目录,包含原始数据与自动解析后的性能数据:

├── device_{id} // 保存原始数据,用户无需关注 │ └── data └── mindstudio_profiler_output ├── msprof_{timestamp}.json ├── step_trace_{timestamp}.json ├── xx_*.csv ... └── README.txt

你只需要关注mindstudio_profiler_output目录,里面就是解析后的全部性能数据。

📂 读懂 9 个性能数据文件:每个文件能帮你分析什么?

默认配置下,msProf 会自动采集以下性能数据文件("_"后为{timestamp}时间戳):

文件名说明
msprof_*.jsontimeline 数据总表
step_trace_*.json迭代轨迹数据,每轮迭代的耗时(单算子场景下无此文件)
op_summary_*.csvAI Core 和 AI CPU 算子数据
op_statistic_*.csvAI Core 和 AI CPU 算子调用次数及耗时统计
step_trace_*.csv迭代轨迹数据(单算子场景下无此文件)
task_time_*.csvTask Scheduler 任务调度信息
fusion_op_*.csv模型中算子融合前后信息(单算子场景下无此文件)
api_statistic_*.csvCANN 层 API 执行耗时信息
prof_rule_0_*.json调优建议

🔍 定位性能瓶颈实战:3 个高价值分析技巧

数据文件众多,无需逐个死磕。以下 3 个文件覆盖了绝大多数性能瓶颈定位场景:

技巧 1:用时间线总表(msprof_*.json)看清全貌

在 Chrome 浏览器地址栏输入chrome://tracing,将 json 文件拖入空白处即可打开(快捷键:w 放大、s 缩小、a 左移、d 右移)。时间线数据分为 3 个关注区域:

  • 区域 1:CANN 层数据—— 包含 Runtime 等组件以及 Node(算子)的耗时数据;
  • 区域 2:底层 NPU 数据—— 包含 Ascend Hardware 下各个 Stream 任务流的耗时数据和迭代轨迹数据;
  • 区域 3:详情面板—— 单击 timeline 色块即可查看各算子、接口的详细信息。

分析思路:先从时间线找出耗时较长的 API、算子、任务流,沿箭头追踪下发关系,定位底层具体耗时的任务,再结合 CSV 文件做量化确认。

技巧 2:用算子统计(op_statistic_*.csv)找出耗时大户

该文件统计各类算子的调用总次数总耗时。按Total Time字段排序,即可快速发现哪类算子总耗时最长,从而判断该类算子是否有优化空间(如融合、替换、降精度)。

技巧 3:用算子明细(op_summary_*.csv)锁定单个高耗时算子

op_summary_*.csv记录每个算子的详细信息与耗时。两种用法:

  • Task Duration字段排序 → 直接找出耗时最长的算子;
  • Task Type字段排序 → 区分 AI Core 与 AI CPU 两类核,查看不同核上的高耗时算子。

💡 进阶:善用 prof_rule_*.json 自动调优建议

prof_rule_0_*.json文件是 msProf 基于采集数据自动生成的调优建议,例如识别到算子间存在空闲、可融合的算子组合等。新手可直接按建议逐条验证,资深工程师可将其作为排查线索的起点,显著缩短性能调优周期。

⚠️ 常见疑问与使用边界

  • 采集对业务有影响吗?Profiling 会引入少量开销,建议在独立调优环境执行,生产环境谨慎开启;
  • 需要 Python 调用栈怎么办?msProf 不支持采集 Python 调用栈与框架层数据,可改用对应框架的 Profiling 接口(如 PyTorch 场景使用 Ascend PyTorch Profiler);
  • 多卡训练 / 服务化推理场景?可配合 msPTI(通用框架场景)、msServiceProfiler(推理服务化场景)使用,详见 性能调优工具菜单。

📚 延伸阅读

  • 采集并解析性能数据(完整教程)
  • 性能调优工具简介
  • 高性能编程建议

✅ 总结

CANN 性能调优的核心闭环很简单:msProf 一键采集 → 自动解析导出 → 时间线找线索 + CSV 定量分析 → 按建议优化。建议从msprof_*.json时间线切入建立全局认知,再用op_statistic/op_summary两张表锁定耗时算子,配合prof_rule_*.json自动建议确定优化方向,即可高效定位软硬件性能瓶颈,让昇腾 AI 任务跑得更快。

【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询