创建vNPU
- 在物理机和虚拟机使用npu-smi工具创建vNPU的命令基本相同,所以本节命令可以适用于物理机和虚拟机,其中只有Atlas 推理系列产品支持在虚拟机创建vNPU。
- 当使用静态虚拟化创建vNPU并挂载到容器时,需要使用本节npu-smi命令创建vNPU,再参考创建vNPU。
- 当使用动态虚拟化时,无需提前创建vNPU,请跳过本节,直接在容器拉起时按以下要求进行参数配置。
- 使用Ascend Docker Runtime:参考方式一:Ascend Docker Runtime挂载vNPU,通过ASCEND_VISIBLE_DEVICES和ASCEND_VNPU_SPECS参数从物理芯片上虚拟化出多个vNPU并挂载至容器。
- 使用MindCluster集群调度组件(Ascend Device Plugin和Volcano):参考动态虚拟化,运行任务时自动按照配置要求调用接口创建vNPU。
创建vNPU方法
- 在物理机执行以下命令设置虚拟化模式(如果是在虚拟机内划分vNPU,不需要执行本命令),命令格式如下。
npu-smi set -t vnpu-mode -d mode
表1 参数说明 类型
描述
mode
虚拟化实例模式。取值为0或1:
- 0:虚拟化实例容器模式
- 1:虚拟化实例虚拟机模式
- 创建vNPU。命令格式如下:
npu-smi set -t create-vnpu -i id -c chip_id -f vnpu_config [-v vnpu_id] [-g vgroup_id]
使用示例如下:- 在设备1中编号为0的芯片上根据模板vir02创建vNPU。
npu-smi set -t create-vnpu -i 1 -c 0 -f vir02 Status : OK Message : Create vnpu success
- 在设备1中编号为0的芯片上指定vnpu_id为103创建vNPU设备,此vNPU的模板为vir02。
npu-smi set -t create-vnpu -i 1 -c 0 -f vir02 -v 103 Status : OK Message : Create vnpu success
- 在设备1中编号为0的芯片上指定vnpu_id为100并指定vgroup_id为1创建vNPU设备,此vNPU的模板为vir02。
npu-smi set -t create-vnpu -i 1 -c 0 -f vir02 -v 100 -g 1 Status : OK Message : Create vnpu success
- 在设备1中编号为0的芯片上根据模板vir02创建vNPU。
- 配置vNPU恢复状态。该参数用于设备重启时,设备能够保存vNPU配置信息,重启后,vNPU配置依然有效。
npu-smi set -t vnpu-cfg-recover -d mode
mode表示vNPU的配置恢复使能状态,“1”表示开启状态,“0”表示关闭状态,默认为使能状态。
执行如下命令设置vNPU的配置恢复状态,以下命令表示将vNPU的配置恢复状态设置为使能状态。
npu-smi set -t vnpu-cfg-recover -d 1
Status : OK Message : The VNPU config recover mode Enable is set successfully.
- 查询vNPU的配置恢复状态。
npu-smi info -t vnpu-cfg-recover
VNPU config recover mode : Enable
- 查询vNPU信息。命令格式:
npu-smi info -t info-vnpu -i id -c chip_id
类型
描述
id
设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。
chip_id
芯片id。通过npu-smi info -m命令查出的Chip ID即为芯片id。
执行如下命令查询vNPU信息。以下命令表示查询设备1中编号为0的芯片的vNPU信息。
npu-smi info -t info-vnpu -i 1 -c 0
Atlas 推理系列产品支持返回AICPU,Vgroup ID信息,Atlas 训练系列产品不支持返回AICPU,Vgroup ID信息。