mcpField
A
ascend-avi-vnpu

ascend-avi-vnpu

github.com/ascend-ai-codingCloud & DevOps17841 installsUpdated 2w ago
Repository

About ascend-avi-vnpu

A skill for managing Huawei Ascend NPU AVI modes and vNPU instances. It supports status and template queries as well as configuration changes, with device checks and user confirmation before modifications.

Key features

  1. 01Query AVI mode and templates
  2. 02Inspect vNPU details and recovery status
  3. 03Set Container or VM mode
  4. 04Create and destroy vNPU instances
  5. 05Check device health and process usage

Use cases

  1. 01Check available vNPU templates
  2. 02Allocate a vNPU for a workload
  3. 03Review device use before changing configuration

Install

Copy the command and run it in a terminal.

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

After installing, type/ascend-avi-vnpuin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
avi-mode.md
security-checklist.md
template-info.md
troubleshooting.md
vnpu-management.md

Details

From the project README

昇腾虚拟化实例(AVI)vNPU 管理

本技能用于管理华为昇腾 NPU 的虚拟化实例(AVI)和 vNPU。

注意: 在执行任何修改操作(设置、创建、销毁)之前,系统会检查设备状态并请您确认。

快速开始

查询操作
# 查询AVI模式
npu-smi info -t vnpu-mode

# 查询所有AVI模板
npu-smi info -t template-info

# 查询指定设备的模板
npu-smi info -t template-info -i <设备ID>

# 查询指定芯片的vNPU信息
npu-smi info -t info-vnpu -i <设备ID> -c <芯片ID>

# 查询vNPU配置恢复使能状态
npu-smi info -t vnpu-cfg-recover -i <设备ID> -c <芯片ID>
修改操作
# 设置AVI模式 (0=Container, 1=VM)
npu-smi set -t vnpu-mode -d <0|1>

# 创建vNPU实例
npu-smi set -t create-vnpu -i <设备ID> -c <芯片ID> -f <模板名> [-v <vnpu_id>] [-g <vgroup_id>]

# 销毁vNPU实例
npu-smi set -t destroy-vnpu -i <设备ID> -c <芯片ID> -v <vnpu_id>

# 设置vNPU配置恢复使能状态
npu-smi set -t vnpu-cfg-recover -i <设备ID> -c <芯片ID> -d <0|1>

查询操作详情

1. 查询昇腾虚拟化实例(AVI)模式
npu-smi info -t vnpu-mode

返回说明:

  • 0: Container 模式(Docker/容器虚拟化)
  • VM: VM 模式(虚拟机虚拟化)
2. 查询昇腾虚拟化实例(AVI)模板信息
# 查询所有模板
npu-smi info -t template-info

# 查询指定设备的模板
npu-smi info -t template-info -i <设备ID>

常用模板:

模板名AI Core数内存适用场景
vir0222GB轻量级工作负载
vir0444GB中等工作负载
vir0888GB重工作负载
3. 查询指定设备的昇腾虚拟化实例(AVI)模板信息
npu-smi info -t template-info -i <设备ID>
4. 查询指定芯片的vNPU
npu-smi info -t info-vnpu -i <设备ID> -c <芯片ID>

返回字段:

字段说明
vNPU IDvNPU标识符
vNPU Group IDvNPU组ID
AI Core Num分配的AI Core数量
Memory Size分配的内存大小
Status当前状态
5. 查询vNPU的配置恢复使能状态
npu-smi info -t vnpu-cfg-recover -i <设备ID> -c <芯片ID>

返回:Enable (启用) 或 Disable (禁用)

修改操作详情

6. 设置昇腾虚拟化实例(AVI)模式
npu-smi set -t vnpu-mode -d <0|1>

参数说明:

  • 0: Container 模式
  • 1: VM 模式

注意: 更改AVI模式可能需要重启设备。

7. 创建指定芯片的vNPU
npu-smi set -t create-vnpu -i <设备ID> -c <芯片ID> -f <模板名> [-v <vnpu_id>] [-g <vgroup_id>]

参数说明:

参数必填说明
i是物理NPU ID
c是芯片ID
f是模板名称 (如 vir02, vir04, vir08)
v否自定义vNPU ID: [phy_id*16+100, phy_id*16+115]
g否组ID: 0, 1, 2, 或 3

示例:

# 使用自动分配的vNPU ID创建
npu-smi set -t create-vnpu -i 0 -c 0 -f vir04

# 指定vNPU ID创建
npu-smi set -t create-vnpu -i 0 -c 0 -f vir04 -v 103

# 在指定组中创建
npu-smi set -t create-vnpu -i 0 -c 0 -f vir04 -v 104 -g 1
8. 销毁指定芯片的vNPU
npu-smi set -t destroy-vnpu -i <设备ID> -c <芯片ID> -v <vnpu_id>

参数说明:

参数必填说明
i是物理NPU ID
c是芯片ID
v是要销毁的vNPU ID

示例:

npu-smi set -t destroy-vnpu -i 0 -c 0 -v 103
9. 设置vNPU的配置恢复使能状态
npu-smi set -t vnpu-cfg-recover -i <设备ID> -c <芯片ID> -d <0|1>

参数说明:

  • 0: 禁用配置恢复
  • 1: 启用配置恢复

安全检查机制

在执行任何修改操作之前,系统会自动执行以下检查:

  1. 设备状态检查: 执行 npu-smi info -l 和 npu-smi info -t health 查看设备健康状态
  2. 进程占用检查: 执行 npu-smi info -t proc-mem 查看是否有程序占用NPU
  3. 用户确认: 在执行修改操作前,会请求您确认是否继续

如果检测到有程序占用NPU,系统会:

  • 显示占用程序信息
  • 询问您是否要kill掉这些程序后再执行操作
⚠️ 重要:模板名称确认

当用户使用模糊表达(如"模板1"、"第一个模板"、"第二个模板")时,必须先确认具体的模板名称,不能直接猜测执行。

正确的处理流程:

  1. 用户说"模板1" → 显示可用模板列表,让用户确认是哪一个
  2. 用户说"第一个模板" → 同上
  3. 用户说"用模板 vir10_3c_16g" → 直接执行

可用模板列表示例:

序号模板名AICORE内存
1vir10_3c_16g1016GB
2vir10_4c_16g_m1016GB
3vir10_3c_16g_nm1016GB
4vir05_1c_8g58GB

参数参考

参数说明获取方式
设备IDNPU设备IDnpu-smi info -l
芯片ID运行时芯片IDnpu-smi info -m (通常为0)
vNPU IDvNPU实例ID范围: [phy_id*16+100, phy_id*16+115]

常见问题

Q: 如何查看当前有哪些vNPU实例?
npu-smi info -t info-vnpu -i 0 -c 0
Q: 创建vNPU时模板如何选择?

根据工作负载需求选择:

模板名AICORE内存说明
vir10_3c_16g1016GB标准模板
vir10_4c_16g_m1016GB媒体增强模板
vir10_3c_16g_nm1016GB非媒体模板
vir05_1c_8g58GB轻量级模板

注意: 当您说"模板1"、"第一个模板"等模糊表达时,我会列出模板请您确认后再执行。

Q: vNPU ID可以自定义吗?

可以,范围是 [phy_id*16+100, phy_id*16+115]。例如设备0的vNPU ID范围是 100-115。

Q: 更改AVI模式需要重启吗?

通常需要重启设备才能生效。请提前做好业务规划。

参考资料

本地文档
官方文档

Comments

Markdown supported