| name | ascend-avi-vnpu |
| description | 昇腾虚拟化实例(AVI)和vNPU管理技能。用于查询/设置AVI模式、管理vNPU实例(创建/销毁)、查询vNPU配置恢复状态等操作。支持安全确认机制,在执行修改操作前检查设备状态。 |
| keywords | ["AVI","vNPU","虚拟化","昇腾","Ascend","npu-smi","模板","实例管理","算力切分"] |
昇腾虚拟化实例(AVI)vNPU 管理
本技能用于管理华为昇腾 NPU 的虚拟化实例(AVI)和 vNPU。
注意: 在执行任何修改操作(设置、创建、销毁)之前,系统会检查设备状态并请您确认。
快速开始
查询操作
npu-smi info -t vnpu-mode
npu-smi info -t template-info
npu-smi info -t template-info -i <设备ID>
npu-smi info -t info-vnpu -i <设备ID> -c <芯片ID>
npu-smi info -t vnpu-cfg-recover -i <设备ID> -c <芯片ID>
修改操作
npu-smi set -t vnpu-mode -d <0|1>
npu-smi set -t create-vnpu -i <设备ID> -c <芯片ID> -f <模板名> [-v <vnpu_id>] [-g <vgroup_id>]
npu-smi set -t destroy-vnpu -i <设备ID> -c <芯片ID> -v <vnpu_id>
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数 | 内存 | 适用场景 |
|---|
| vir02 | 2 | 2GB | 轻量级工作负载 |
| vir04 | 4 | 4GB | 中等工作负载 |
| vir08 | 8 | 8GB | 重工作负载 |
3. 查询指定设备的昇腾虚拟化实例(AVI)模板信息
npu-smi info -t template-info -i <设备ID>
4. 查询指定芯片的vNPU
npu-smi info -t info-vnpu -i <设备ID> -c <芯片ID>
返回字段:
| 字段 | 说明 |
|---|
| vNPU ID | vNPU标识符 |
| vNPU Group ID | vNPU组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>
参数说明:
注意: 更改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 |
示例:
npu-smi set -t create-vnpu -i 0 -c 0 -f vir04
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>
参数说明:
安全检查机制
在执行任何修改操作之前,系统会自动执行以下检查:
- 设备状态检查: 执行
npu-smi info -l 和 npu-smi info -t health 查看设备健康状态
- 进程占用检查: 执行
npu-smi info -t proc-mem 查看是否有程序占用NPU
- 用户确认: 在执行修改操作前,会请求您确认是否继续
如果检测到有程序占用NPU,系统会:
- 显示占用程序信息
- 询问您是否要kill掉这些程序后再执行操作
⚠️ 重要:模板名称确认
当用户使用模糊表达(如"模板1"、"第一个模板"、"第二个模板")时,必须先确认具体的模板名称,不能直接猜测执行。
正确的处理流程:
- 用户说"模板1" → 显示可用模板列表,让用户确认是哪一个
- 用户说"第一个模板" → 同上
- 用户说"用模板 vir10_3c_16g" → 直接执行
可用模板列表示例:
| 序号 | 模板名 | AICORE | 内存 |
|---|
| 1 | vir10_3c_16g | 10 | 16GB |
| 2 | vir10_4c_16g_m | 10 | 16GB |
| 3 | vir10_3c_16g_nm | 10 | 16GB |
| 4 | vir05_1c_8g | 5 | 8GB |
参数参考
| 参数 | 说明 | 获取方式 |
|---|
设备ID | NPU设备ID | npu-smi info -l |
芯片ID | 运行时芯片ID | npu-smi info -m (通常为0) |
vNPU ID | vNPU实例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_16g | 10 | 16GB | 标准模板 |
| vir10_4c_16g_m | 10 | 16GB | 媒体增强模板 |
| vir10_3c_16g_nm | 10 | 16GB | 非媒体模板 |
| vir05_1c_8g | 5 | 8GB | 轻量级模板 |
注意: 当您说"模板1"、"第一个模板"等模糊表达时,我会列出模板请您确认后再执行。
Q: vNPU ID可以自定义吗?
可以,范围是 [phy_id*16+100, phy_id*16+115]。例如设备0的vNPU ID范围是 100-115。
Q: 更改AVI模式需要重启吗?
通常需要重启设备才能生效。请提前做好业务规划。
参考资料
本地文档
- [AVI 模式说明](references/avi-mode.md)
- [模板信息详解](references/template-info.md)
- [vNPU 管理指南](references/vnpu-management.md)
- [安全操作指南](references/security-checklist.md)
- [常见问题与故障排查](references/troubleshooting.md)
官方文档