关于 huawei-cloud-msot-msopprof-operator-profiler
该技能面向 Ascend NPU 算子开发与优化人员,支持配置并采集算子性能数据、生成报告及导出数据。它还提供可搜索的优化案例和算子建议,用于辅助后续分析。
主要功能
- 01配置设备或模拟器采集
- 02采集算子级性能数据
- 03生成性能分析报告
- 04导出数据到性能数据库
- 05检索优化案例与算子方案
适用场景
- 01分析 Ascend NPU 上的算子性能
- 02比较设备与模拟器的采集结果
- 03定位算子执行瓶颈
- 04为模型优化准备性能报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-msot-msopprof-operator-profiler安装后在 Claude Code 中输入/huawei-cloud-msot-msopprof-operator-profiler确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
demo/simulator-needs-sim-build.mdreferences/acceptance-criteria.mddevice-tuning-guide.mdsimulator-tuning-guide.mdtroubleshooting.mdverification-method.md详细介绍
华为云 msOT msopprof 算子性能分析器
概述
此技能提供 Ascend NPU 的算子级性能分析能力。
架构:性能分析配置 → 数据采集 → 报告生成 → 分析
相关技能:
huawei-cloud-ascend-profiler-db-explorer- 性能分析数据库分析与查询huawei-cloud-ascend-small-model-migrate- 使用性能数据的迁移工作流
架构组件
此技能涉及以下云服务和组件:
- msopprof:华为云 Ascend NPU 算子性能分析工具
- CANN:为 NPU 运行时支持提供的 AI 计算平台
- Ascend NPU:性能分析的目标硬件
- 性能分析数据库:用于存储采集到的性能数据
架构图:
┌─────────────────────────────────────────────────────────────┐
│ msOT msopprof Operator Profiler Skill │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Profiling │───▶│ Data │───▶│ Report │ │
│ │ Config │ │ Collection │ │ Generation │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Mode │ │ Operator │ │ Data │ │
│ │ Selection │ │ Execution │ │ Export │ │
│ │ (Device/Sim)│ │ Monitoring │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
使用场景
典型问题场景:
- 在 Ascend NPU 上采集算子级性能数据
- 分析模型推理性能
- 通过算子执行情况识别性能瓶颈
- 比较设备模式和模拟器模式下的算子性能
- 生成用于模型优化的性能分析报告
典型用户说法:
- “分析 Ascend NPU 上的算子性能”
- “使用 msopprof 采集性能数据”
- “生成性能分析报告”
- “比较设备模式与模拟器模式的性能分析结果”
- “识别性能瓶颈”
- “AscendCollectionOperatorPerformanceData”
- “msopprofPerformance”
- “PerformanceAnalysisReport”
范围
支持:
- 算子性能数据采集
- 设备模式性能分析
- 模拟器模式性能分析
- 报告生成
不支持:
- 系统级性能分析
- 非 Ascend 平台
核心工作流
1. 性能分析配置
- 设置性能分析参数
- 配置采集模式(设备/模拟器)
2. 数据采集
- 在目标模型上执行性能分析
- 采集算子性能数据
3. 报告生成
- 生成性能分析报告
- 输出性能指标
4. 数据导出
- 将数据导出到性能分析数据库
- 为后续分析做准备
增强功能
最佳实践知识库
此技能集成了可搜索的知识库,其中包含迁移成功案例和优化模式:
功能:
- 案例研究库:可搜索的数据库,收录常见模型架构的迁移成功案例
- 算子优化方案:针对常见算子的成熟优化模式和代码片段
- 相似度匹配:根据模型架构相似度推荐成熟方案
- 性能模式:已知性能模式和反模式的集合
- 专家建议:由 Ascend 优化专家精选的技巧
知识库结构:
- 案例研究:YOLO、ResNet、UNet 迁移成功案例
- 算子方案:Conv2D、MatMul、Attention 优化模式
- 性能模式:常见瓶颈模式及解决方案
- 专家技巧:行业专家提供的优化最佳实践
YOLOv8 迁移成功案例
模型信息
- 模型:YOLOv8s
- 输入:640x640
- 目标:Ascend 910B
遇到的挑战
-
问题:NMS 算子回退到 CPU
- 解决方案:实现 AscendC NMS 算子
- 收益:延迟降低 30%
-
问题:内存带宽瓶颈
- 解决方案:优化数据布局和批处理
- 收益:吞吐量提升 15%
-
问题:自定义激活函数
- 解决方案:替换为受支持的算子
- 收益:NPU 执行稳定
最终结果
- 延迟:8.2 ms → 5.1 ms(-37.8%)
- 吞吐量:122 FPS → 196 FPS(+60.7%)
- 准确率:60.2% → 60.4%(+0.2%)
关键要点
- 迁移前务必检查算子覆盖情况
- 为关键路径实现自定义算子
- 优化内存访问模式
算子优化方案
- Conv2D:填充开销 → 使用 NPU 原生填充(提升 5-10%)
- MatMul:内存布局 → 最优分块配置(提升 10-15%)
- Attention:FlashAttention → 启用 NPU FlashAttention(提升 20-30%)
- NMS:回退到 CPU → AscendC 实现(提升 25-35%)
参考文档
前置条件
- 已安装 msopprof >= 1.0.0
- 已安装 CANN >= 7.0.0
- 已安装 Ascend NPU 驱动
- 待分析的算子代码
核心命令
# Collect operator performance data
msopprof --output=/path/to/output \
--mode=device \
./my_operator
# Analyze performance report
python3 scripts/analyze_profile.py --data /path/to/output
参数确认
- output:性能数据输出路径(必填)
- mode:采集模式(设备/模拟器)(可选)
- operator:算子可执行文件路径(必填)
评论
支持 Markdown