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. 01Ascend 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

詳細

Huawei Cloud msOT msopprof オペレータープロファイラー

概要

このスキルは、Ascend NPU 向けのオペレーターレベルのパフォーマンスプロファイリング機能を提供します。

アーキテクチャ:プロファイリング設定 → データ収集 → レポート生成 → 分析

関連スキル:

  • huawei-cloud-ascend-profiler-db-explorer - プロファイリングデータベースの分析と クエリ
  • huawei-cloud-ascend-small-model-migrate - パフォーマンスデータを使用する 移行ワークフロー

アーキテクチャのコンポーネント

このスキルでは、以下のクラウドサービスとコンポーネントを使用します。

  • msopprof:Ascend NPU 向けの Huawei Cloud オペレータープロファイリングツール
  • CANN:NPU ランタイムをサポートする AI Computing Platform
  • 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:オペレーター実行可能ファイルのパス(必須)

コメント