创建vNPU
- 如果采用静态虚拟化方式使用vNPU,在使用原生Docker、MindX DL挂载vNPU前,需要通过npu-smi工具使用虚拟化实例命令按照用户的使用需求创建vNPU,如果使用MindX DL动态虚拟化功能,则不需要提前创建vNPU,MindX DL运行任务时自动按照配置要求调用接口创建vNPU。
- Ascend Docker Runtime使用vNPU,既可以先通过npu-smi工具创建vNPU,再将vNPU挂载到容器中;也可以在拉起容器时,直接通过ASCEND_VISIBLE_DEVICES和ASCEND_VNPU_SPECS参数从物理芯片上虚拟化出多个vNPU并挂载至容器。两种方式的具体使用方法及区别请参见Ascend Docker Runtime使用vNPU方法。
- 在物理机和虚拟机使用npu-smi工具创建vNPU的命令基本相同,所以本节命令可以适用于物理机和虚拟机,其中只有Atlas 推理系列产品支持在虚拟机创建vNPU。
创建vNPU方法
- 在物理机执行以下命令设置虚拟化模式(如果是在虚拟机内划分vNPU,不需要执行本命令)。
- 创建vNPU。
命令格式:npu-smi set -t create-vnpu -i id -c chip_id -f vnpu_config [-v vnpu_id] [-g vgroup_id]
类型
描述
id
设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。
chip_id
芯片id。通过npu-smi info -m命令查出的Chip ID即为芯片id。
vnpu_config
虚拟化实例模板名称,可参见表2。
vnpu_id
指定需要创建的vNPU的id。
- 首次创建可以不指定该参数,由系统默认分配。若重启后业务需要使用重启前的vnpu_id,可以使用-v参数指定重启前的vnpu_id进行恢复。
- 取值范围。
- Atlas 推理系列产品的vnpu_id的取值范围为[phy_id*16 + 100, phy_id * 16+107]。
- Atlas 训练系列产品的vnpu_id的取值范围为[phy_id*16 + 100, phy_id * 16+115]。
说明:phy_id表示芯片物理ID,可通过执行ls /dev/davinci*命令获取芯片的物理ID。例如/dev/davinci0,表示芯片的物理ID为0。
- vnpu_id传入4294967295时表示不指定虚拟设备号。
- 同一台服务器内不可重复创建相同vnpu_id的vNPU。
vgroup_id
虚拟资源组vGroup的id,取值范围0~3。vGroup的概念可以参见虚拟化模式,仅Atlas 推理系列产品支持本参数。
使用示例如下:- 在设备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
- 配置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信息。