MindStudio-Profiler-Analyze:基于 MindStudio 的 AI 性能分析工具项目

MindStudio-Profiler-Analyze(msprof-analyze)是MindStudio全流程工具链推出的性能分析工具,基于采集的性能数据进行分析,识别AI作业中的性能瓶颈。

分支7Tags60
文件最后提交记录最后更新时间
docs: 资料低错修改 1 个月前
msprof-analyze资料整改 6 个月前
!116 merge master into master docs: 英文资料合入 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** - **修改内容:** 英文资料合入 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof-analyze!1166 天前
!127 merge master into master docs:资料大模型二次检查 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** docs:资料大模型二次检查 - **修改内容:** ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof-analyze!1271 个月前
【msprof-analyze_master】msprof-analyze支持slow_link分析能力 17 天前
add pre-commit 1 个月前
修复打包冗余文件问题 1 个月前
!146 merge add_ut_0521 into master 【ut补充】summary export ut Created-by: fanglanyue0916 Commit-by: fanglanyue Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 补充summary_export.py的ut - **修改内容:** 补充summary_export.py的ut ---- ## 2. 功能验证 - [x] **功能自验** - [x] **本地自验用例截图** - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ![image.png](https://raw.gitcode.com/user-images/assets/8227141/dca79243-84b2-4371-9421-64cfb29e5557/image.png 'image.png') ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof-analyze!1463 天前
Migrate mstt master branch to a new repository 6 个月前
add pre-commit 1 个月前
docs: msprof-analyze资料CI检查整改 2 个月前
Migrate mstt master branch to a new repository 6 个月前
Migrate mstt master branch to a new repository 6 个月前
[bugfix] 修复推理场景下FA数据统计 20 天前
docs: 英文资料合入 7 天前
Migrate mstt master branch to a new repository 6 个月前
Migrate mstt master branch to a new repository 6 个月前
Migrate mstt master branch to a new repository 6 个月前
修复打包冗余文件问题 1 个月前
update version to 26.0.0 2 个月前

MindStudio Profiler Analyze

🚀 昇腾性能分析工具

doc License Version Ascend

📢 最新消息

  • [2025.12.30]:新增 module_statistic 分析能力:提供的针对PyTorch模型自动解析模型层级结构的分析能力,帮助精准定位性能瓶颈。

📌 简介

MindStudio Profiler Analyze(msprof-analyze)是面向 AI 训练与推理场景的性能分析工具,基于采集得到的 profiling 数据进行统计、比对和诊断,帮助定位计算、通信、调度及集群场景下的性能瓶颈。

📖 功能介绍

功能名称 功能简介 文档 源码目录
专家建议 基于性能数据自动识别计算、调度、通信等潜在问题,并输出优化建议。 专家建议 advisor
性能比对 支持 GPU/NPU、NPU/NPU 等多种场景的性能差异分析。 性能比对 compare_tools
集群分析 汇总集群通信数据,输出结果支持在 MindStudio Insight 中可视化查看。 集群分析 cluster_analyse
扩展分析 基于 DB 类型性能数据,提供可自定义的 Recipe 分析规则,目前已涵盖拆解对比、Host 下发、计算、通信等 20 余种多维度分析能力,便于灵活扩展。 扩展分析 recipes

🛠️ 工具安装

推荐直接通过 pip 安装:

pip install -U msprof-analyze

如需 whl 包下载、源码编译,请参见 《msprof-analyze工具安装指南》。

🚀 快速入门

msprof-analyze 常用分析命令如下:

# 集群通信汇总
msprof-analyze cluster -m all -d ./cluster_data

# 专家建议
msprof-analyze advisor all -d ./prof_data -o ./advisor_output

# 性能比对
msprof-analyze compare -d ./ascend_pt -bp ./gpu_trace.json -o ./compare_output

以 ResNet50 模型训练任务为例,《快速入门》贯穿从采集性能数据、执行 Advisor 分析到查看分析结果的完整流程,帮助您快速体验工具的核心功能。

🔍 目录结构

关键目录如下,详细信息参见 《目录结构说明》。

msprof-analyze
├── config                      # 配置文件目录
├── docs                        # 文档目录
├── msprof_analyze              # 主代码包目录
│   ├── advisor                 # 专家建议模块
│   ├── cli                     # 命令行入口
│   ├── cluster_analyse         # 集群分析模块
│   ├── compare_tools           # 性能比对模块
│   ├── prof_common             # 公共能力模块
│   └── prof_exports            # 导出模块
├── requirements                # 依赖管理目录
├── test                        # 测试目录
└── README.md                   # 项目说明文档

📝 相关说明

💬 建议与交流

欢迎大家为社区做贡献。如果有任何疑问或建议,请提交 Issues,我们会尽快回复。感谢您的支持。

诚邀参与满意度问卷调查抽取惊喜好礼😎。

💬 技术交流群 📢 官方公众号 🤝 更多加入渠道

扫码直接加入技术交流群

扫码关注获取最新动态
欢迎扫码关注技术交流群跟官方公众号。这里是 MindStudio 用户与开发者最快捷的交流阵地:
快速提问: 与社区小伙伴即时探讨技术问题
掌握动态: 第一时间获取版本发布与功能更新通知
经验共享: 与其他开发者交流最佳实践
🛠️ 其他渠道
👉 昇腾助手:WeChat
👉 昇腾论坛:Website

🤝 致谢

本工具由华为公司的下列部门联合贡献:

  • 昇腾计算 MindStudio 开发部
  • 华为云昇腾云服务
  • 昇腾计算生态使能部
  • 2012 网络实验室

感谢来自社区的每一个 PR,欢迎贡献 msprof-analyze

关于MindStudio团队

华为 MindStudio 全流程开发工具链团队致力于提供端到端的昇腾 AI 应用开发解决方案,使能开发者高效完成训练开发、推理开发和算子开发。更多信息请访问 昇腾社区昇腾论坛

项目介绍

MindStudio-Profiler-Analyze(msprof-analyze)是MindStudio全流程工具链推出的性能分析工具,基于采集的性能数据进行分析,识别AI作业中的性能瓶颈。

https://gitcode.com/ascend/msprof-analyze定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

Python85.39%
Jupyter Notebook13.16%
HTML1.23%
C++0.08%
CMake0.05%