mcpField
H
huawei-cloud-ascend-command

huawei-cloud-ascend-command

github.com/huaweicloudクラウド・DevOps59457 回インストール2 日前に更新
リポジトリ

huawei-cloud-ascend-command について

自然言語の依頼を npu-smi コマンドに変換し、Huawei Ascend NPU を管理するスキルです。ローカル実行と SSH によるリモート操作に対応し、重要な変更には確認を求めます。

主な機能

  1. 01自然言語を npu-smi コマンドに変換
  2. 02デバイスの状態と使用率を照会
  3. 03設定とファームウェアを管理
  4. 04vNPUと証明書を操作
  5. 05FLOPSテストを実行

活用シーン

  1. 01NPUの状態、温度、メモリーの確認
  2. 02確認を経たECCやファン設定の変更
  3. 03ファームウェア更新やvNPU管理
  4. 04複数デバイスの演算性能テスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-ascend-command

インストール後、Claude Code で/huawei-cloud-ascend-commandを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
certificate-management.md
configuration.md
device-queries.md
firmware-upgrade.md
troubleshooting.md
verification-method.md
virtualization.md
scripts/
__init__.py
executor.py
main.py
npu_client.py

詳細

Huawei Ascend NPU の自然言語コマンド変換と実行を提供します。デバイスの照会、設定管理、ファームウェアのアップグレード、vNPU 仮想化、証明書管理、演算性能テストなど、npu-smi コマンドをすべてサポートします。

概要

このスキルは、npu-smi コマンドを使用して Huawei Ascend NPU デバイスを自然言語で管理します。ローカルでの直接実行と SSH リモートモードの両方をサポートします。

関連スキル:

  • huawei-cloud-ascend-remote-connect - 一般的な SSH リモート操作(ディスク、Docker、ログ、プロセス)
  • npu-smi-skill - 代替の NPU 管理実装
  • model-deploy-test-skill - Ascend DevServer でのモデルのデプロイとテスト

機能:

  • デバイスの照会(ヘルス、温度、電力、HBM、ECC、トポロジー)
  • 設定管理(ECC、ファンモード、ファン速度)
  • ファームウェアのアップグレードとステータス確認
  • vNPU 仮想化
  • 証明書管理
  • 演算性能テスト(FLOPS)

アーキテクチャ

システムアーキテクチャ図
┌─────────────────────────────────────────────────────────────────────┐
│                         Agent Orchestration                         │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │  1. Parse user intent → Match Trigger keywords                        │    │
│  │  2. Prepare params → host, user, password explicit                 │    │
│  │  3. Invoke Skill → skill exec --name ascend-command            │    │
│  │  4. Return result → User                                          │    │
│  └────────────────────────────┬────────────────────────────────┘    │
│                               │ Explicit param passing (Rule 1)                │
│                               ▼                                     │
├─────────────────────────────────────────────────────────────────────┤
│                        User Interaction Layer                       │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │  Natural Language Commands / CLI Arguments                  │    │
│  │  (NPU health check, temperature, firmware upgrade)          │    │
│  └────────────────────────────┬────────────────────────────────┘    │
│                               │                                     │
│                               ▼                                     │
├─────────────────────────────────────────────────────────────────────┤
│                      Skill Core Components (Stateless (Rule 2))           │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐      │
│  │ Command Executor│←→│   NPU Client    │←→│ Trend Recorder  │      │
│  │  - NL Parsing   │  │  - npu-smi cmd  │  │  - Metric Log   │      │
│  │  - Command Route│  │  - Local/SSH    │  │  - Trend Analysis│      │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘      │
│         │                      │                                     │
│         ▼                      ▼                                     │
├─────────────────────────────────────────────────────────────────────┤
│                    Huawei Cloud Ascend Infrastructure               │
│  Data Flow: Agent → Skill(host,user,pwd) → SSH → npu-smi → Response │
└─────────────────────────────────────────────────────────────────────┘
エージェントのオーケストレーションフロー
User request: "Query NPU status on 116.204.23.145"
         │
         ▼
┌─────────────────────────────────────────────────────────────┐
│ Agent parses intent                                               │
│   - Keyword "NPU" → Match ascend-command                       │
│   - IP address → SSH params needed                                  │
└─────────────────────────────────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────────────────────────────────┐
│ Agent prepares params (explicit, Rule 1)                              │
│   --host 116.204.23.145                                      │
│   --user root                                                │
│   --password ***                                             │
│   --command "NPU list"                                       │
└─────────────────────────────────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────────────────────────────────┐
│ Skill executes (Stateless, Rule 2)                                    │
│   - NpuClient(host, user, password) explicit receive                 │
│   - Execute npu-smi command                                        │
│   - Return result                                                 │
└─────────────────────────────────────────────────────────────┘
         │
         ▼
      Return to user
関連スキル(エージェントによるオーケストレーション、直接呼び出しなし、ルール 3)
スキル目的オーケストレーションのシナリオ
huawei-cloud-ascend-remote-connectSSH リモート操作ユーザーがディスク/Docker/ログを必要とする場合にエージェントが選択
npu-smi-skillNPU 管理代替実装。エージェントがシナリオに応じて選択
model-deploy-test-skillモデルのデプロイデプロイ後の NPU 監視に ascend-command を使用

注:スキル間の直接呼び出しはありません。ユーザーの意図に基づいてエージェントがオーケストレーションします。

前提条件

システム要件
  • Python 3.8+
  • 純粋な Python 標準ライブラリによる実装のため、追加の依存関係は不要です
環境チェック

前提条件の確認:Python3 が必要です

python3 --version  # Python3 >= 3.8

認証

セキュリティルール(必ず遵守してください):

  • パスワードの値を読み取る、エコーする、または出力することは禁止されています
  • 会話内でユーザーにパスワードを直接入力するよう求めることは禁止されています
  • コマンドライン引数からのみ認証情報を読み取ることができます

パラメーターの確認

入力パラメーター
パラメーター必須説明
commandはい(単発実行)実行する自然言語コマンド
hostいいえSSH リモートホストの IP アドレス
userいいえSSH ユーザー名
passwordいいえSSH パスワード
確認が必要な操作

次の操作には、ユーザーによる明示的な確認が必要です:

  • ECC の有効化/無効化
  • ファンモードの変更
  • ファームウェアのアップグレード
  • vNPU の作成/削除
  • 証明書管理

コアワークフロー

タスク 1:単発コマンドの実行
python3 scripts/main.py --command "NPU health check"
タスク 2:SSH リモート実行
python3 scripts/main.py --command "NPU list" --host 192.168.1.100 --user root --password xxx
タスク 3:対話モード
python3 scripts/main.py

使用方法

デバイスの照会
List all NPU devices
NPU health check
Get NPU temperature
Get NPU power usage
Get NPU memory info
設定管理
Set ECC mode
Set fan mode
ファームウェアのアップグレード
Query firmware version
Upgrade firmware
仮想化
Query vNPU info
Create vNPU
FLOPS テスト
Run FLOPS test
Run FP32 FLOPS test
Run multi-device FLOPS test

出力形式

標準応答形式

すべてのコマンド出力は、構造化された形式に従います:

{
  "status": "success",
  "command": "npu-smi info -l",
  "description": "List all NPU devices"
}
エラー応答形式
[ERROR] <error-code>
Message: <error-description>
Suggestion: <troubleshooting-tip>

検証方法

基本的な検証手順
  1. 環境チェック

    python3 --version  # Verify Python 3.8+
    
  2. ローカルコマンドのテスト

    python3 scripts/main.py --command "NPU list"
    
  3. リモートコマンドのテスト

    python3 scripts/main.py --host <ascend-ip> --user root --password <pwd> --command "NPU health check"
    
期待される結果
テストケース期待される出力
環境チェックPython のバージョンが 3.8 以上
ローカルコマンドNPU デバイス情報、または「npu-smi not found」
リモートコマンドリモートサーバーの NPU ステータス

スクリプトファイル

エントリーファイル
  • main.py:スキルのエントリーファイル(必須)
    • 機能:対話モード、単発実行モード、SSH リモートモードを提供します
    • サポート対象:コマンドライン引数、対話プロンプト
コアスクリプト
  • executor.py:NPU コマンド実行ツール(メインエントリーポイント)

    • 機能:自然言語の解析、コマンドの振り分け、機密性の高い操作の確認
    • 対応コマンド:デバイスの照会、設定、ファームウェアのアップグレード、仮想化、証明書管理
    • コアメソッド:handle_command(text)、confirm_sensitive()
  • npu_client.py:NPU クライアント

    • 機能:npu-smi コマンドの実行をラップし、ローカル実行と SSH によるリモート実行に対応
    • コアメソッド:list_devices()、get_health()、get_temperature()、get_power()、get_memory()、set_ecc_enable()、upgrade_query()、create_vnpu()、get_tls_cert()
    • 最適化:SSH ControlMaster、一括実行、並列 FLOPS テスト

コマンド変換マッピング

デバイスの照会
自然言語コマンド説明
すべての NPU デバイスを一覧表示npu-smi info -lすべての NPU デバイスを一覧表示
NPU カード情報npu-smi info -mカードとチップのマッピング
NPU 情報npu-smi infoNPU の全情報
ヘルスチェック
自然言語コマンド説明
NPU ヘルスチェックnpu-smi info -t health -i 0デバイスのヘルス状態を確認
NPU の状態を確認npu-smi info -t health -i 0デバイスのヘルス状態を確認
温度/電力/メモリ
自然言語コマンド説明
NPU の温度npu-smi info -t temp -i 0 -c 0温度を取得
NPU の電力npu-smi info -t power -i 0 -c 0電力使用量を取得
NPU のメモリnpu-smi info -t memory -i 0 -c 0メモリ情報を取得
NPU の使用率npu-smi info -t usages -i 0 -c 0使用率を取得
設定
自然言語コマンド説明
ECC を設定npu-smi set -t ecc-enable -i 0 -c 0 -d 1ECC を有効化(確認が必要)
ファンモードを設定npu-smi set -t pwm-mode -d 0ファンモードを設定(確認が必要)
ファームウェアのアップグレード
自然言語コマンド説明
ファームウェアのバージョンnpu-smi upgrade -b mcu -i 0ファームウェアのバージョンを照会
ファームウェアをアップグレードnpu-smi upgrade -t mcu -i 0 -f file.hpmファームウェアをアップロード(確認が必要)
仮想化
自然言語コマンド説明
vNPU 情報npu-smi info -t info-vnpu -i 0 -c 0vNPU 情報を照会
テンプレート情報npu-smi info -t template-info -i 0テンプレート情報を照会
vNPU を作成npu-smi set -t create-vnpu -i 0 -c 0 -f vir04vNPU を作成(確認が必要)
証明書管理
自然言語コマンド説明
証明書情報npu-smi info -t tls-cert -i 0 -c 0TLS 証明書を表示
証明書の有効期限npu-smi info -t tls-cert-period -i 0 -c 0証明書の有効期限のしきい値を照会
FLOPS テスト(ascend-dmi)

デフォルトの動作:単一デバイスの FP16、すばやく結果を返します(約 2 秒)

自然言語コマンド説明
FLOPS テストascend-dmi -f -d 0 -t fp16 -qデフォルト:NPU 0、FP16
NPU FLOPSascend-dmi -f -d 0 -t fp16 -q上記と同じ
NPU 3 の FLOPSascend-dmi -f -d 3 -t fp16 -qNPU 3 を指定
FP32 FLOPSascend-dmi -f -d 0 -t fp32 -qFP32 精度
すべてのデバイスの FLOPS8 台のデバイスで非同期並列実行すべての NPU を同時にテスト

実行方法:

  • 単一デバイス:直接実行し、約 2 秒で結果を返します
  • 複数デバイス:非同期で並列実行し、合計約 2 秒です(16 秒の逐次実行ではありません)
  • 精度:デフォルトは fp16 で、fp32/bf16/int8/hf32 に対応しています

パフォーマンスの最適化

最適化説明効果
SSH 永続接続ControlMaster の再利用接続時間は約 0.1 秒
バッチ実行複数のコマンドに execute_batch() を使用SSH の往復回数を削減
並列クエリ8 台のデバイスで test_flops_parallel() による非同期テスト16 秒 → 2 秒
単一パースparse_full_info() ですべてのカード情報を一度に取得O(N) → O(1)

トラブルシューティング

コマンドが認識されない
  • 入力にサポートされているキーワードが含まれているか確認してください
  • より具体的なコマンドを試してください
SSH 接続に失敗する
  • SSH パラメーターが正しいことを確認してください
  • 対象マシンで SSH サービスが実行されていることを確認してください
npu-smi を利用できない
  • 対象マシンに CANN と npu-smi がインストールされていることを確認してください
  • LD_LIBRARY_PATH 環境変数を確認してください

注意事項

セキュリティに関する警告
  • 機密性の高い操作は、実行前にユーザーの確認が必要です
  • パスワードはセッション中のみメモリに保存されます
  • ブロックされたコマンドは回避できません
制限事項
  • 対象マシンに npu-smi または ascend-dmi がインストールされている必要があります
  • SSH パスワード認証のみ対応しています(対話型のパスワードプロンプトには対応していません)

ベストプラクティス

ベストプラクティス
  1. 接続モードの選択

    • ローカル直接接続:ローカルマシンに NPU がインストールされている場合
    • SSH リモート接続:リモートの Ascend サーバーを管理する場合
  2. コマンド実行のヒント

    • 機密性の高い操作(ファームウェアのアップグレード、設定変更)には、ユーザーの確認が必要です
    • バッチ操作の前に、1 枚のカードでテストしてください
  3. パフォーマンスの監視

    • NPU の温度と電力を定期的に確認してください
    • OOM を避けるため、HBM の使用状況を監視してください
  4. トラブルシューティング

    • まず NPU の状態を確認してください:npu-smi info
    • 詳細なエラーログを表示します:npu-smi info -t board -i <npu_id>
    • troubleshooting.md を参照してください
  5. トリガーキーワード

    • 中国語:NPU、Ascend、ビデオメモリ、演算能力、温度、電力、ファームウェア、仮想化
    • 英語:npu、ascend、temperature、power、HBM、firmware、vNPU、FLOPS

ディレクトリ構成

huawei-cloud-ascend-command/
├── SKILL.md                    # Skill description (required)
├── scripts/                    # Scripts directory (required)
│   ├── __init__.py             # Module export
│   ├── main.py                 # Skill entry file (required)
│   ├── executor.py             # NPU command executor
│   └── npu_client.py           # NPU client
└── references/                 # Reference documentation
    ├── acceptance-criteria.md  # Acceptance criteria
    ├── verification-method.md  # Verification steps
    ├── troubleshooting.md      # Troubleshooting guide
    ├── device-queries.md       # Device queries reference
    ├── configuration.md        # Configuration reference
    ├── firmware-upgrade.md     # Firmware upgrade reference
    ├── virtualization.md       # Virtualization reference
    └── certificate-management.md # Certificate management

参考資料

ドキュメント説明
acceptance-criteria.mdスキル検証の合格基準
verification-method.md検証手順とテスト方法
troubleshooting.mdトラブルシューティングガイドとよくある問題
device-queries.mdデバイスクエリコマンドのリファレンス
configuration.md設定管理のリファレンス
firmware-upgrade.mdファームウェアアップグレードのリファレンス
virtualization.md仮想化管理のリファレンス
certificate-management.md証明書管理のリファレンス

テクニカルサポート

コメント