mcpField
A
ascend-dmi

ascend-dmi

github.com/ascend-ai-codingクラウド・DevOps17842 回インストール2 週間前に更新
リポジトリ

ascend-dmi について

ascend-dmiは、ascend-dmiユーティリティでHuawei Ascend NPUを照会・診断する手順型スキルです。環境確認、パラメーター選択、リスク確認、実行、結果解釈を案内します。

主な機能

  1. 01ascend-dmiと必要なCANN環境の確認
  2. 02照会・テスト用パラメーターの選択支援
  3. 03診断およびNPU復旧コマンドの作成
  4. 04リスク確認と承認手順
  5. 05テスト結果と主要指標の解釈

活用シーン

  1. 01Ascend NPUデバイス状態の確認
  2. 02帯域幅、演算性能、消費電力のテスト
  3. 03ヘルスチェックと性能チェックの実施
  4. 04リスク確認後のNPU復旧

インストール

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

$npx skills add https://github.com/ascend-ai-coding/awesome-ascend-skills --skill ascend-dmi

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

同梱ファイル

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

assets/
report-template.md
references/
command-cheatsheet.md
constraints.md
environment-setup.md
execution-guide.md
output-interpretation.md
risk-assessment.md
references/parameters/
bandwidth.md
common.md
diagnosis.md
flops.md
power.md
scripts/templates/
bandwidth-test.sh
diagnose-test.sh
health-check.sh
stress-test.sh

詳細

Ascend DMI ツール使用ガイド

Ascend DMI(Ascend Device Management Interface)は、Huawei Ascend NPU デバイスの管理および診断ツールです。

このファイルの手順を必ず順番どおりに実行してください。手順を飛ばしたり、独自に代替策を考案したりしてはいけません。 各手順には明確な合格条件があり、合格しなければ次の手順に進めません。これは参考資料ではなく、必ず従う必要がある操作手順です。

クイック判断:操作の種類に応じて経路を選択

用户请求
  │
  ├─ 信息查询(-v/-i/-c/-h)或眼图测试(--sq)
  │   → 【快速路径】检查 ascend-dmi → 确认参数 → 构建命令 → 直接执行 → 解读输出
  │
  ├─ 性能测试(--bw/-f/-p)或 healthCheck/performanceCheck
  │   → 【标准路径】检查 ascend-dmi + CANN → 确认参数 → 构建命令 → 告知风险并确认 → 执行 → 解读输出
  │
  └─ 压力测试(--dg -s)或 NPU 恢复(-r)
      → 【高风险路径】检查 ascend-dmi + CANN → 确认参数 → 构建命令 → 二次确认 → 检查设备占用 → 执行 → 解读输出

注意:標準経路と高リスク経路のどちらも、コマンドを実行する前に必ず CANN の確認を完了する必要があります。第 2 步を参照してください。

第 1 步:リモートかローカルか?

  • ローカル(ユーザーがリモート IP/ホスト名に言及していない場合):現在のサーバーで直接 ascend-dmi コマンドを実行します

  • リモート(ユーザーが IP アドレス、ホスト名、または「リモートサーバー」に言及している場合):まず remote-server-guide skill を呼び出して接続を確立する必要があります。自分で SSH を試してはいけません。理由:直接 ssh を実行しても、非対話環境ではパスワードを入力できず、認証に失敗します。remote-server-guide は tmux などを使ってパスワード入力を安全に処理します。接続が確立したら、リモートで以降の手順を実行します。

    禁止事項:ssh user@host "command" を直接実行してはいけません。Claude 環境では必ず失敗します(パスワードを入力できないためです)。

第 2 步:環境の確認

環境確認は 2 つの部分に分かれています。コマンドを実行する前に、必ず順番に両方を完了してください。

2a. ascend-dmi の確認
which ascend-dmi && ascend-dmi -v

利用できない場合:

source /usr/local/Ascend/toolbox/set_env.sh
which ascend-dmi

それでも利用できない場合は、[references/environment-setup.md] を読み、手順に従って MindCluster ToolBox をインストールします。

2b. CANN の確認(性能テスト、診断、ストレステストで必須)

帯域幅テスト(--bw)、演算性能テスト(-f)、消費電力テスト(-p)、ヘルスチェック(--dg)、ストレステスト(-s)は、いずれも CANN 環境に依存します。CANN の確認を完了せずにこれらのコマンドを実行すると、必ず失敗します。例外はありません。

検証コマンド(この手順全体を通して、CANN が利用可能かどうかの判断に繰り返し使用します):

python3 -c "import acl; print(acl.get_soc_name())"
  • チップモデル(例:Ascend910B)が出力される = CANN が利用可能 ✓ → 第 3 步へ進みます
  • エラーが出る(ModuleNotFoundError、ImportError など)= CANN が利用不可 ✗ → 以下の修復手順を実行します

CANN が利用できない場合の修復手順(必ず 1→2→3→4 の順に実行し、手順を飛ばしてはいけません):

1. まずユーザーに尋ねます。 ユーザーに「CANN はどのパスにインストールされていますか?」と質問し、回答を待ちます。

  • ユーザーがパスを提示した場合 → source <路径>/set_env.sh → 検証コマンドを実行 → 合格したら第 3 步へ進みます。失敗した場合は、そのパスを利用できないことをユーザーに伝え、手順 2 に進みます
  • ユーザーが分からないと言った場合 → 手順 2 に進みます

2. ユーザーの同意を得てから自動検索します。 まずユーザーに「CANN のパスを自動検索してもよいですか?」と尋ね、同意を得た後、以下の優先順位に従って1 つずつ試します(CANN 8.5.0+ のディレクトリ名は cann、旧バージョンでは ascend-toolkit です)。

優先順位試すコマンド
②source /usr/local/Ascend/ascend-toolkit/set_env.sh → 検証
①source /usr/local/Ascend/cann/set_env.sh → 検証
①source /home/miniconda3/Ascend/cann/set_env.sh → 検証
③find /home -path "*/Ascend/cann/set_env.sh" -o -path "*/Ascend/ascend-toolkit/set_env.sh" 2>/dev/null。見つかったパスごとに source → 検証

各優先順位での処理方法はすべて同じです:

source <路径>/set_env.sh → python3 -c "import acl; print(acl.get_soc_name())"
  ├─ 验证通过(输出芯片型号)→ 成功,进入第 3 步
  └─ 验证失败(任何报错)→ 放弃这个路径,尝试下一优先级

「ディレクトリが存在する」ことは「CANN が利用可能である」ことを意味しません。 ディレクトリやファイルが存在すること、set_env.sh を source できることは、いずれも検証コマンドの代わりにはなりません。python3 -c "import acl; print(acl.get_soc_name())" が成功した場合に限り、CANN が利用可能と判断します。検証に失敗した場合は、そのパスを直ちに断念してください。ディレクトリ内にset_env.shファイルが存在しない場合も、そのパスを直ちに断念してください。

3. すべて失敗した場合 → 停止します。 ユーザーに「CANN の自動検索に失敗しました。正確な CANN のインストールパスを提示してください」と伝え、操作を停止してユーザーの返信を待ちます。ascend-dmi コマンドの実行を続けてはいけません。


環境の破損やコマンドの実行エラーにつながるため、以下の操作は禁止されています:

  • ✗ 手順 1 を飛ばして直接検索する(ユーザーがパスを知っている可能性があり、検索は時間の無駄です)
  • ✗ export PATH=...、export PYTHONPATH=...、export LD_LIBRARY_PATH=... を使って環境を手動で組み立てる
  • ✗ 検証に失敗した後、同じパスで修復を繰り返し試みる(Python バージョンの変更、pip パッケージのインストール、権限の変更など)
  • ✗ /usr/local/Ascend/ascend-toolkit または /usr/local/Ascend/cann ディレクトリが存在するだけで見つかったと判断し、検証コマンドを実行しない
  • ✗ すべてのパスで失敗した後も、ascend-dmi のテストコマンドを実行し続ける

第 3 步:テストパラメーターの確認

コマンドを組み立てる前に、具体的なテストパラメーターをユーザーに確認します。ユーザーのリクエストにすでに含まれているパラメーターは、足りないものだけ確認してください。ユーザーがリクエストですべてのパラメーターを明確に指定している場合、再度尋ねる必要はありません。

まず npu-smi info を実行して利用可能なデバイスの一覧を取得し、ユーザーに選択肢を提示します。

テストの種類ごとに確認するパラメーター

帯域幅テスト:

  • テストモード:h2d / d2h / d2d / p2p(複数選択可)
  • どのカード(デバイス ID)をテストするか、またはすべてのカードをテストするか
  • データサイズ(-s)を指定するか。注意:A2/A3 では D2D は -s に対応していません
  • P2P の送信元/送信先デバイス(-ds/-dd)を指定するか。指定しない場合は、すべてのデバイス間のマトリックスをテストします

演算性能テスト:

  • データ型:fp16 / fp32 / int8 / bf16 / hf32(デフォルトは fp16。対応状況は製品によって異なります。詳しくは [references/constraints.md] を参照してください)
  • どのカードをテストするか(-d)、またはシステム全体をテストするか(--all)。両者は相互に排他的です
  • 実行回数(--et、デフォルトは 60、単位は 10 万)を調整するか

消費電力テスト:

  • テストの種類:edp(推定設計電力)または tdp(熱設計電力)
  • テスト時間(--dur、デフォルトは 600 秒)

ヘルスチェック/性能仕様:

  • どのカードをテストするか、またはすべてのカードをテストするか

ストレステスト:

  • テスト項目:aicore / hbm(オンチップメモリ)/ bandwidth(P2P)/ edp / tdp / aicpu
  • どのカードをテストするか。注意:aicpu は単独で実行する必要があり、他の項目と組み合わせることはできません

NPU の復旧:

  • どのカードを復旧するか(-d の指定が必須です)

アイダイアグラムテスト:

  • テストの種類:pcie / hbm / roce / all
  • どのカードをテストするか

第 4 步:コマンドの組み立て

ユーザーが確認したパラメーターに基づき、以下の表に従ってコマンドを組み立てます。

コマンド早見表
操作コマンドテンプレートリスク
バージョンascend-dmi -vなし
デバイスの状態ascend-dmi -i [-b|--dt]なし
互換性チェックascend-dmi -cなし
アイダイアグラムテストascend-dmi --sq -t pcie|hbm|roce|all [-d ID]なし
帯域幅テストascend-dmi --bw -t h2d|d2h|d2d|p2p [-d ID] [-s SIZE] [-q]中
演算性能テストascend-dmi -f -t fp16|fp32|int8|bf16|hf32 [-d ID] [--all] [-q]中
消費電力テストascend-dmi -p [-pt edp|tdp] [--dur SEC] [-q]中
ヘルスチェックascend-dmi --dg --se healthCheck [-d ID] [-q]中
性能仕様ascend-dmi --dg --se performanceCheck [-d ID] [-q]中
ストレステストascend-dmi --dg --se stressTest [-d ID] [-q] または -s -i ITEM高
NPU の復旧ascend-dmi -r -d ID [-q]高

コマンドとパラメーターの完全な組み合わせは [references/command-cheatsheet.md] を参照してください。各パラメーターの詳しい説明は [references/parameters/] 下の各ファイルを参照してください。

注意事項
  • -q パラメーター:中/高リスク操作では、ユーザーの確認後に -q を追加してコマンドラインの対話型プロンプトをスキップします

第 5 步:リスクの確認と実行

无风险操作(信息查询、眼图测试)

直接执行,无需额外确认。

中等风险操作(带宽/算力/功耗测试、健康检查、性能规格)

这些操作会独占 NPU 设备,中断正在运行的训练或推理任务。执行前:

  1. 告知用户影响:"该测试会独占 NPU,正在运行的训练/推理任务将被中断"
  2. 获取用户确认后执行
  3. 添加 -q 参数跳过命令行交互提示
高风险操作(压力测试、NPU 恢复)

这些操作可能导致长时间高负载、硬件过热或 NPU 暂时不可用。执行前:

  1. 明确告知具体风险(如"压力测试会持续数小时高负载运行,可能触发硬件保护机制")
  2. 检查设备占用:fuser -v /dev/davinci*
  3. 要求用户二次确认:确认已停止相关业务、了解风险
  4. 添加 -q 参数

详细风险矩阵见 [references/risk-assessment.md]。

第 6 步:解读输出

执行完成后,提取关键指标并给出结论:

带宽测试:关注 Bandwidth(GB/s) 值。典型参考:H2D 20-28 GB/s, D2H 25-30 GB/s, D2D 760-800 GB/s, P2P 25-55 GB/s。注意:D2D 在 A2/A3 上传输大小由 AI Core 决定、不支持 -s 参数;P2P 不指定 -ds/-dd 时输出的是设备间矩阵。

算力测试:关注 TFLOPS/TOPS 值。注意区分测试模式:使用 --all 时,TFLOPS 是整机所有卡的算力总和,不是单卡算力;不带 --all 时才是单卡算力。判断是否达标时必须对应正确的规格(整机规格 = 单卡规格 × 卡数)。如显著低于产品规格,可能是温度过高触发降频。

功耗测试:关注 Power(W) 和 Temperature(°C)。温度应低于 90°C。

诊断测试:PASS = 正常,FAIL = 需处理,SKIP = 当前产品不支持,WARN = 关注警告级别。

详细结果解读方法见 [references/output-interpretation.md]。

资源索引

需要时读取
安装/配置 ascend-dmi 或 CANN[references/environment-setup.md]
查看完整命令和参数[references/command-cheatsheet.md] + [references/parameters/]
详细风险评估[references/risk-assessment.md]
深入解读测试结果[references/output-interpretation.md]
使用约束和限制[references/constraints.md]
命令模板示例[scripts/templates/]
测试报告模板[assets/report-template.md]

コメント