mcpField
H
huawei-cloud-msot-msopprof-operator-profiler

huawei-cloud-msot-msopprof-operator-profiler

github.com/huaweicloud开发59156 次安装2 天前更新
代码仓库

关于 huawei-cloud-msot-msopprof-operator-profiler

该技能面向 Ascend NPU 算子开发与优化人员,支持配置并采集算子性能数据、生成报告及导出数据。它还提供可搜索的优化案例和算子建议,用于辅助后续分析。

主要功能

  1. 01配置设备或模拟器采集
  2. 02采集算子级性能数据
  3. 03生成性能分析报告
  4. 04导出数据到性能数据库
  5. 05检索优化案例与算子方案

适用场景

  1. 01分析 Ascend NPU 上的算子性能
  2. 02比较设备与模拟器的采集结果
  3. 03定位算子执行瓶颈
  4. 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.md
references/
acceptance-criteria.md
device-tuning-guide.md
simulator-tuning-guide.md
troubleshooting.md
verification-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
遇到的挑战
  1. 问题:NMS 算子回退到 CPU

    • 解决方案:实现 AscendC NMS 算子
    • 收益:延迟降低 30%
  2. 问题:内存带宽瓶颈

    • 解决方案:优化数据布局和批处理
    • 收益:吞吐量提升 15%
  3. 问题:自定义激活函数

    • 解决方案:替换为受支持的算子
    • 收益: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