昇腾虚拟化(算力切分)使用说明

1 昇腾虚拟化(算力切分)介绍

1.1 特性说明

特性说明通过NPU虚拟化是将物理机或虚拟机配置的NPU(昇腾AI处理器)切分成若干份vNPU(虚拟NPU)挂载到容器中,支持多用户共同使用一个NPU,提高资源利用率。使用说明和相关约束详见链接

1.2 虚拟化规则

以Atlas 300I Pro 推理产品为例说明虚拟化规则。虚拟化的方案受到AI Core核数、内存、AICPU核数、VPC总核数、VDEC总核数、JPEGD总核数、PNGD总核数、VENC总核数、JPEGE总核数等的影响,定义了推理系列产品虚拟化实例模板:vir01、vir02、vir04、vir02_1c、vir04_3c、vir04_3c_ndvpp、vir04_4c_dvpp。
在这里插入图片描述
如vir04模板,AI Core核数 4,内存 12GB,AICPU 4等。而Atlas 300I Pro共7个AICPU核,vir04_3c模板只有3个AI CPU。
每张卡有如下组合切分方式,每一行是一种切分组合,把虚拟化实例模板进行组合。
在这里插入图片描述

1.3 创建vNPU

下面介绍在物理机使用npu-smi命令静态虚拟化创建vNPU,更多介绍参考社区资料NPU-SMI算力切分相关命令

操作步骤:

1)在物理机执行以下命令设置虚拟化模式为容器模式:
npu-smi set -t vnpu-mode -d 0

2)创建vNPU命令,如把0卡0芯切分未4个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。

  • npu-smi set -t create-vnpu -i 0 -c 0 -f vir02 -v 100
  • npu-smi set -t create-vnpu -i 0 -c 0 -f vir02 -v 101
  • npu-smi set -t create-vnpu -i 0 -c 0 -f vir02 -v 102
  • npu-smi set -t create-vnpu -i 0 -c 0 -f vir02_1c -v 103

3)查询vNPU信息命令:
npu-smi info -t info-vnpu -i id -c chip_id

  • npu-smi info -t info-vnpu -i 0 -c 0

2 安装测试的工具

安装ais_bench测试工具,安装包链接

3 挂载vnpu(基于原生docker挂载)

1) 查看已经创建好的vnpu
ls /dev/vdavinci*

2)创建容器进行设备映射(参考)

if [ $# -ne 2 ]; then
       echo "error: need one argument describing your container name."
       exit 1
   fi
   docker run --name ${NAME} -it -d --net=host --shm-size=500g  \
       -w /home \
       --device=/dev/vdavinci132:/dev/davinci0 \
       --device=/dev/vdavinci133:/dev/davinci1 \
       --device=/dev/vdavinci134:/dev/davinci2 \
       --device=/dev/vdavinci135:/dev/davinci3 \
       --device=/dev/davinci_manager \
       --device=/dev/hisi_hdc \
       --device=/dev/devmm_svm \
       --entrypoint=bash \
       -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
       -v /usr/local/dcmi:/usr/local/dcmi \
       -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
       -v /usr/local/sbin:/usr/local/sbin \
       -v /home:/home \
       -v /data:/data \
       -v /tmp:/tmp \
       -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
       ${IMAGES_ID}

说明:

1)把一张卡上创建的4个vnpu映射到容器内,这里被映射到容器内的id(须指定为/dev/davinciX,davinci后面的数字)。ais_bench测试工具设备ID的范围只支持在[0,7],

2)创建容器时不支持特权容器(启动脚本不能携带–privileged=true),其次,映射的vpnu块数必须<=8,(上述脚本映射的vNPU为4块)其他的可以参照文档。

4 性能测试

使用ais_bench测试工具,–device指定使用虚拟化的vNPU ID(0~3)。

5 销毁vNPU

命令格式:
npu-smi set -t destroy-vnpu -i id -c chip_id -v vnpu_id

详细使用说明

**注意:**如果一张卡按照规则被虚拟化为4 个vNPU之后,后续想要虚拟化为7 个vNPU,需要先销毁之前的4 vNPU,销毁vNPU之后,重新创建vNPU。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值