huawei-cloud-msot-msopprof-operator-profiler について
Ascend NPUの開発者向けに、算子の性能計測を設定し、データ収集、レポート生成、データ出力まで行うスキルです。検索可能な事例や最適化レシピも、後続の分析に活用できます。
主な機能
- 01デバイスまたはシミュレーターでの計測設定
- 02算子単位の性能データ収集
- 03性能分析レポートの生成
- 04プロファイリングデータベースへの出力
- 05最適化事例とレシピの検索
活用シーン
- 01Ascend 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詳細
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
発生した課題
-
問題: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 対応