ascend-dmi について
ascend-dmiは、ascend-dmiユーティリティでHuawei Ascend NPUを照会・診断する手順型スキルです。環境確認、パラメーター選択、リスク確認、実行、結果解釈を案内します。
主な機能
- 01ascend-dmiと必要なCANN環境の確認
- 02照会・テスト用パラメーターの選択支援
- 03診断およびNPU復旧コマンドの作成
- 04リスク確認と承認手順
- 05テスト結果と主要指標の解釈
活用シーン
- 01Ascend NPUデバイス状態の確認
- 02帯域幅、演算性能、消費電力のテスト
- 03ヘルスチェックと性能チェックの実施
- 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.mdreferences/command-cheatsheet.mdconstraints.mdenvironment-setup.mdexecution-guide.mdoutput-interpretation.mdrisk-assessment.mdreferences/parameters/bandwidth.mdcommon.mddiagnosis.mdflops.mdpower.mdscripts/templates/bandwidth-test.shdiagnose-test.shhealth-check.shstress-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-guideskill を呼び出して接続を確立する必要があります。自分で 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 设备,中断正在运行的训练或推理任务。执行前:
- 告知用户影响:"该测试会独占 NPU,正在运行的训练/推理任务将被中断"
- 获取用户确认后执行
- 添加
-q参数跳过命令行交互提示
高风险操作(压力测试、NPU 恢复)
这些操作可能导致长时间高负载、硬件过热或 NPU 暂时不可用。执行前:
- 明确告知具体风险(如"压力测试会持续数小时高负载运行,可能触发硬件保护机制")
- 检查设备占用:
fuser -v /dev/davinci* - 要求用户二次确认:确认已停止相关业务、了解风险
- 添加
-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] |