Ascend Docker挂载vNPU
Ascend Docker Runtime场景主要通过结合Ascend Docker Runtime(容器引擎插件)使用,将vNPU挂载到容器。
使用前提
需要先获取“Ascend-docker-runtime_{version}_linux-{arch}.run”,并安装容器引擎插件,方法可参见安装Ascend Docker Runtime。
Ascend Docker Runtime使用vNPU方法
选择以下两种方式之一进行使用:
- 用户通过npu-smi工具创建vNPU后,在拉起容器时执行以下命令将vNPU挂载至容器中。以下命令表示用户在拉起容器时,挂载虚拟芯片ID为100的芯片。
docker run -it -e ASCEND_VISIBLE_DEVICES=100 -e ASCEND_RUNTIME_OPTIONS=VIRTUAL image-name:tag /bin/bash
- 用户在拉起容器时,执行以下命令切分算力资源,以下命令表示从物理芯片ID为0的芯片上,切分出4个AI Core作为vNPU并挂载至容器。以此方式拉起的容器,在结束容器进程时,虚拟设备会自动销毁。
docker run -it --rm -e ASCEND_VISIBLE_DEVICES=0 -e ASCEND_VNPU_SPECS=vir04 image-name:tag /bin/bash
- 请勿同时开启动态虚拟化和虚拟化持久化特性。
- 可用的芯片ID可通过如下方式查询确认:
- 物理芯片ID:
ls /dev/davinci*
- 虚拟芯片ID:
ls /dev/vdavinci*
- 物理芯片ID:
- image-name:tag:镜像名称与标签,请根据实际情况修改。如“ascend-tensorflow:tensorflow_TAG”。
- 用户在使用过程中,请勿重复定义和在容器镜像中固定ASCEND_VISIBLE_DEVICES、ASCEND_RUNTIME_OPTIONS和ASCEND_VNPU_SPECS环境变量。
参数 |
说明 |
举例 |
---|---|---|
ASCEND_VISIBLE_DEVICES |
使用ASCEND_VISIBLE_DEVICES环境变量指定被挂载至容器的NPU设备,使用设备序号指定设备,支持单个和范围指定且支持混用。 |
ASCEND_VISIBLE_DEVICES=100表示将id为100的vNPU挂载到容器。 |
ASCEND_RUNTIME_OPTIONS |
对参数ASCEND_VISIBLE_DEVICES中指定的芯片ID作出限制:
|
|
ASCEND_VNPU_SPECS |
从物理NPU设备中划分出一定数量的AI Core,指定为虚拟设备。支持的取值为(vir01,vir02,vir02_1c,vir04,vir04_3c,vir08,vir16、vir04_4c_dvpp、vir04_3c_ndvpp)。
需配合参数“ASCEND_VISIBLE_DEVICES”一起使用,参数“ASCEND_VISIBLE_DEVICES”指定用于虚拟化的物理NPU设备。 |
ASCEND_VNPU_SPECS=vir04表示划分4个AI Core作为vNPU,挂载至容器。 |
父主题: 挂载vNPU