Containerd客户端使用

Containerd客户端使用Ascend Docker Runtime的启动容器命令示例如下。

启动命令相关参数如表1解释。

容器启动后,可执行以下命令检查相应设备和驱动是否挂载成功,每台机型具体的挂载目录参考默认挂载内容。命令示例如下:

ls /dev | grep davinci* && ls /dev | grep devmm_svm && ls /dev | grep hisi_hdc && ls /usr/local/Ascend/driver && ls /usr/local/ |grep dcmi && ls /usr/local/bin
  • 可用的芯片ID可通过如下方式查询确认:
    • 物理芯片ID:
      ls /dev/davinci*
    • 虚拟芯片ID:
      ls /dev/vdavinci*
  • image-name:tag:镜像名称与标签,请根据实际情况修改。如“ascend-tensorflow:tensorflow_TAG”。
  • containerID:容器ID。使用ctr启动容器需要指定容器ID,如“c1”。
  • 若用户不需要挂载基础配置文件base中的所有内容时,可指定自定义配置文件hostlog减少挂载的内容,hostlog请根据实际创建的配置文件名修改。
  • 用户在使用过程中,请勿重复定义和在容器镜像中固定ASCEND_VISIBLE_DEVICES、ASCEND_RUNTIME_OPTIONS、ASCEND_RUNTIME_MOUNTS和ASCEND_VNPU_SPECS等环境变量。
表1 Ascend Docker Runtime运行参数解释

参数

说明

举例

ASCEND_VISIBLE_DEVICES

使用ASCEND_VISIBLE_DEVICES环境变量指定被挂载至容器中的NPU设备,使用设备序号指定设备,支持单个和范围指定且支持混用。

  • ASCEND_VISIBLE_DEVICES=0表示将0号设备(/dev/davinci0)挂载入容器中。
  • ASCEND_VISIBLE_DEVICES=1,3 表示将1、3号设备挂载入容器中。
  • ASCEND_VISIBLE_DEVICES=0-2 表示将0号至2号设备(包含0号和2号)挂载入容器中,效果同-e ASCEND_VISIBLE_DEVICES=0,1,2
  • ASCEND_VISIBLE_DEVICES=0-2,4 表示将0号至2号以及4号设备挂载入容器,效果同-e ASCEND_VISIBLE_DEVICES=0,1,2,4

ASCEND_ALLOW_LINK

是否允许挂载的驱动文件存在软链接,在Atlas 500 A2 智能小站Atlas 200I A2 AI加速模块Atlas 200I DK A2 开发者套件场景下需要指定该参数。

  • ASCEND_ALLOW_LINK=True,表示在Atlas 500 A2 智能小站Atlas 200I A2 AI加速模块Atlas 200I DK A2 开发者套件场景下允许挂载带有软链接的驱动文件。
  • ASCEND_ALLOW_LINK=false或者不指定该参数,Atlas 500 A2 智能小站Atlas 200I A2 AI加速模块Atlas 200I DK A2 开发者套件将无法使用Ascend Docker Runtime

ASCEND_RUNTIME_OPTIONS

对参数ASCEND_VISIBLE_DEVICES中指定的芯片ID作出限制:

  • NODRV:表示不挂载驱动相关目录。
  • VIRTUAL:表示挂载的是虚拟芯片。
  • NODRV,VIRTUAL:表示挂载的是虚拟芯片,并且不挂载驱动相关目录。
说明:

虚拟设备的相关约束及创建方法具体请参见Ascend 910 NPU 驱动和固件安装指南(其他产品型号请参考对应的驱动和固件安装手册)的“算力分组场景下的安装”章节。

  • ASCEND_RUNTIME_OPTIONS=NODRV
  • ASCEND_RUNTIME_OPTIONS=VIRTUAL
  • ASCEND_RUNTIME_OPTIONS=NODRV,VIRTUAL

ASCEND_RUNTIME_MOUNTS

读取配置文件中的挂载内容。

ASCEND_RUNTIME_MOUNTS=hostlog
说明:

hostlog请根据实际自定义配置文件名修改。

ASCEND_VNPU_SPECS

从物理NPU设备中切分出一定数量的AI Core,指定为虚拟设备。支持的取值为(vir01,vir02,vir02_1c,vir04,vir04_3c,vir08,vir16、vir04_4c_dvpp、vir04_3c_ndvpp)。

  • Atlas 推理系列产品仅支持vir01、vir02、vir02_1c、vir04、vir04_3c、vir04_4c_dvpp、vir04_3c_ndvpp。
  • Atlas 训练系列产品仅支持vir02、vir04、vir08和vir16。

需配合参数“ASCEND_VISIBLE_DEVICES”一起使用,参数“ASCEND_VISIBLE_DEVICES”指定用于切分的物理NPU设备。

ASCEND_VNPU_SPECS=vir04表示切分4个AI Core作为虚拟设备,挂载至容器中。

说明:
  • vir后面的数字表示AI Core数量。
  • c前面的数字表示AI CPU数量。
  • g前面的数字表示AI 内存容量。
  • m、dvpp表示虚拟化时包含所有数字视觉预处理模块(即VPC,VDEC,JPEGD,PNGD,VENC,JPEGE)。
  • nm、ndvpp表示虚拟化时没有数字视觉预处理硬件资源。