huawei-cloud-ascend-command について
自然言語の依頼を npu-smi コマンドに変換し、Huawei Ascend NPU を管理するスキルです。ローカル実行と SSH によるリモート操作に対応し、重要な変更には確認を求めます。
主な機能
- 01自然言語を npu-smi コマンドに変換
- 02デバイスの状態と使用率を照会
- 03設定とファームウェアを管理
- 04vNPUと証明書を操作
- 05FLOPSテストを実行
活用シーン
- 01NPUの状態、温度、メモリーの確認
- 02確認を経たECCやファン設定の変更
- 03ファームウェア更新やvNPU管理
- 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.mdcertificate-management.mdconfiguration.mddevice-queries.mdfirmware-upgrade.mdtroubleshooting.mdverification-method.mdvirtualization.mdscripts/__init__.pyexecutor.pymain.pynpu_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-connect | SSH リモート操作 | ユーザーがディスク/Docker/ログを必要とする場合にエージェントが選択 |
npu-smi-skill | NPU 管理 | 代替実装。エージェントがシナリオに応じて選択 |
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>
検証方法
基本的な検証手順
-
環境チェック
python3 --version # Verify Python 3.8+ -
ローカルコマンドのテスト
python3 scripts/main.py --command "NPU list" -
リモートコマンドのテスト
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 info | NPU の全情報 |
ヘルスチェック
| 自然言語 | コマンド | 説明 |
|---|---|---|
| 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 1 | ECC を有効化(確認が必要) |
| ファンモードを設定 | 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 0 | vNPU 情報を照会 |
| テンプレート情報 | npu-smi info -t template-info -i 0 | テンプレート情報を照会 |
| vNPU を作成 | npu-smi set -t create-vnpu -i 0 -c 0 -f vir04 | vNPU を作成(確認が必要) |
証明書管理
| 自然言語 | コマンド | 説明 |
|---|---|---|
| 証明書情報 | npu-smi info -t tls-cert -i 0 -c 0 | TLS 証明書を表示 |
| 証明書の有効期限 | 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 FLOPS | ascend-dmi -f -d 0 -t fp16 -q | 上記と同じ |
| NPU 3 の FLOPS | ascend-dmi -f -d 3 -t fp16 -q | NPU 3 を指定 |
| FP32 FLOPS | ascend-dmi -f -d 0 -t fp32 -q | FP32 精度 |
| すべてのデバイスの FLOPS | 8 台のデバイスで非同期並列実行 | すべての 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 パスワード認証のみ対応しています(対話型のパスワードプロンプトには対応していません)
ベストプラクティス
ベストプラクティス
-
接続モードの選択
- ローカル直接接続:ローカルマシンに NPU がインストールされている場合
- SSH リモート接続:リモートの Ascend サーバーを管理する場合
-
コマンド実行のヒント
- 機密性の高い操作(ファームウェアのアップグレード、設定変更)には、ユーザーの確認が必要です
- バッチ操作の前に、1 枚のカードでテストしてください
-
パフォーマンスの監視
- NPU の温度と電力を定期的に確認してください
- OOM を避けるため、HBM の使用状況を監視してください
-
トラブルシューティング
- まず NPU の状態を確認してください:
npu-smi info - 詳細なエラーログを表示します:
npu-smi info -t board -i <npu_id> - troubleshooting.md を参照してください
- まず NPU の状態を確認してください:
-
トリガーキーワード
- 中国語: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 | 証明書管理のリファレンス |
テクニカルサポート
- Ascend 公式ドキュメント:https://www.hiascend.com/document
- npu-smi コマンドリファレンス:https://www.hiascend.com/document/detail/zh/Atlas%20200I%20A2/260RC1/re/npu/npusmi_007.html