文档
注册

在Docker客户端使用

Docker客户端使用Ascend Docker Runtime的启动容器命令示例如下。
  • 示例1:启动容器时,挂载物理芯片ID为0的芯片。
    docker run -it -e ASCEND_VISIBLE_DEVICES=0 image-name:tag /bin/bash
  • 示例2:启动容器时,仅挂载NPU设备和管理设备,不挂载驱动相关目录。
    docker run --rm -it -e ASCEND_VISIBLE_DEVICES=0 -e ASCEND_RUNTIME_OPTIONS=NODRV image-name:tag /bin/bash
  • 示例3:启动容器时,挂载物理芯片ID为0的芯片,读取自定义配置文件hostlog中的挂载内容。
    docker run --rm -it -e ASCEND_VISIBLE_DEVICES=0 -e ASCEND_RUNTIME_MOUNTS=hostlog image-name:tag /bin/bash
  • 示例4:启动容器时,挂载虚拟芯片ID为100的芯片。
    docker run -it -e ASCEND_VISIBLE_DEVICES=100 -e ASCEND_RUNTIME_OPTIONS=VIRTUAL image-name:tag /bin/bash
  • 示例5:启动容器时,从物理芯片ID为0的芯片上,切分出4个AI Core作为虚拟设备并挂载至容器中。
    docker run -it --rm -e ASCEND_VISIBLE_DEVICES=0 -e ASCEND_VNPU_SPECS=vir04 image-name:tag /bin/bash
  • 示例6:启动容器时,挂载物理芯片ID为0的芯片,并且允许挂载的驱动文件中存在软链接(仅适用于Atlas 500 A2 智能小站Atlas 200I A2 加速模块Atlas 200I DK A2 开发者套件场景):
    docker run --rm -it -e ASCEND_VISIBLE_DEVICES=0 -e ASCEND_ALLOW_LINK=True  image-name:tag /bin/bash
容器启动后,可执行以下命令检查相应设备和驱动是否挂载成功,每台机型具体的挂载目录参考默认挂载内容。命令示例如下:
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

使用Ascend Docker Runtime

使用Ascend Docker Runtime支持容器运行训练、推理或其他任务。

  • Atlas 200I SoC A1 核心板运行推理容器为例,用户请根据实际情况修改。示例如下,相关参数如表1表2所示:
    docker run -it -e ASCEND_VISIBLE_DEVICES=0 --device=/dev/xsmem_dev --device=/dev/event_sched --device=/dev/svm0 --device=/dev/sys --device=/dev/vdec --device=/dev/vpc --device=/dev/log_drv --device=/dev/spi_smbus --device=/dev/upgrade --device=/dev/user_config --device=/dev/ts_aisle --device=/dev/memory_bandwidth -v /var/dmp_daemon:/var/dmp_daemon:ro -v /var/slogd:/var/slogd:ro -v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf:ro -v /usr/local/Ascend/driver/tools:/usr/local/Ascend/driver/tools -v /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64 -v /usr/lib64/aicpu_kernels:/usr/lib64/aicpu_kernels:ro -v /usr/lib64/libtensorflow.so:/usr/lib64/libtensorflow.so:ro -v /sys/fs/cgroup/memory:/sys/fs/cgroup/memory:ro -v /usr/lib64/libyaml-0.so.2:/usr/lib64/libyaml-0.so.2:ro -v /etc/ascend_install.info:/etc/ascend_install.info -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info workload-image:v1.0 /bin/bash
    • 如果Atlas 200I SoC A1 核心板的驱动是1.0.0(Ascend HDK 22.0.0)及之前的版本,则需要挂载/dev/xsmem_dev和/dev/event_sched这两个设备。
    • 如果Atlas 200I SoC A1 核心板的驱动是1.0.0(Ascend HDK 22.0.0)之后的版本,则不需要挂载/dev/xsmem_dev和/dev/event_sched这两个设备。
  • Atlas 500 A2 智能小站运行推理容器为例,用户请根据实际情况修改。示例如下,相关参数如表1表2所示:
    docker run --rm -it -e ASCEND_VISIBLE_DEVICES=0 -e ASCEND_ALLOW_LINK=True  workload-image:v1.0 /bin/bash

不使用Ascend Docker Runtime

  • Atlas 200I SoC A1 核心板运行推理容器为例,用户请根据实际情况修改。示例如下,相关参数如表1表2所示:
    docker run -it --device=/dev/davinci0 --device=/dev/xsmem_dev --device=/dev/event_sched --device=/dev/svm0 --device=/dev/sys --device=/dev/vdec --device=/dev/venc --device=/dev/vpc --device=/dev/davinci_manager --device=/dev/spi_smbus --device=/dev/upgrade --device=/dev/user_config --device=/dev/ts_aisle --device=/dev/memory_bandwidth -v /etc/sys_version.conf:/etc/sys_version.conf:ro -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro -v /var/dmp_daemon:/var/dmp_daemon:ro -v /var/slogd:/var/slogd:ro -v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf:ro -v /etc/hdcBasic.cfg:/etc/hdcBasic.cfg:ro -v /usr/local/Ascend/driver/tools:/usr/local/Ascend/driver/tools -v /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64 -v /usr/lib64/aicpu_kernels:/usr/lib64/aicpu_kernels:ro -v /usr/lib64/libtensorflow.so:/usr/lib64/libtensorflow.so:ro -v /sys/fs/cgroup/memory:/sys/fs/cgroup/memory:ro -v /usr/lib64/libyaml-0.so.2:/usr/lib64/libyaml-0.so.2:ro -v /etc/ascend_install.info:/etc/ascend_install.info -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info workload-image:v1.0 /bin/bash
    • 如果Atlas 200I SoC A1 核心板的驱动是1.0.0(Ascend HDK 22.0.0)及之前的版本,则需要挂载/dev/xsmem_dev和/dev/event_sched这两个设备。
    • 如果Atlas 200I SoC A1 核心板的驱动是1.0.0(Ascend HDK 22.0.0)之后的版本,则不需要挂载/dev/xsmem_dev和/dev/event_sched这两个设备。
  • Atlas 500 A2 智能小站不使用Ascend Docker Runtime运行推理任务请参见Atlas 500 A2 智能小站 昇腾软件快速安装指南中的“部署昇腾软件(预置系统场景) > 制作容器镜像”章节中的“启动容器”,运行推理任务。

参数说明

表1 Ascend Docker Runtime运行参数解释

参数

说明

举例

ASCEND_VISIBLE_DEVICES

必选使用ASCEND_VISIBLE_DEVICES环境变量指定被挂载至容器中的NPU设备,否则挂载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_VISIBLE_DEVICES=AscendXXX-Y,其中XXX表示芯片的型号,支持的取值为910,310、310B和310P;Y表示物理设备ID。
    • ASCEND_VISIBLE_DEVICES=Ascend910-1,表示把1号芯片挂载进容器。
    • ASCEND_VISIBLE_DEVICES=Ascend910-1,Ascend910-3,表示把1号芯片和3号芯片挂载进容器。
    说明:
    • 芯片类型需要和实际环境的芯片类型保持一致,否则将会挂载失败。
    • 不支持在一个参数里既指定设备序号又指定芯片名称,即不支持ASCEND_VISIBLE_DEVICES=0,Ascend910-1。

ASCEND_ALLOW_LINK

是否允许挂载的文件或目录中存在软链接,在Atlas 500 A2 智能小站Atlas 200I A2 加速模块Atlas 200I DK A2 开发者套件场景下必须指定该参数。

说明:

其他设备如Atlas 训练系列产品Atlas A2 训练系列产品Atlas 200I SoC A1 核心板等产品可以使用该参数,但因其默认挂载内容中不存在软链接,所以无需额外指定该参数。

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

ASCEND_RUNTIME_OPTIONS

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

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

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

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

ASCEND_RUNTIME_MOUNTS

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

  • ASCEND_RUNTIME_MOUNTS=hostlog
  • ASCEND_RUNTIME_MOUNTS=hostlog,hostlog1,hostlog2
    说明:
    • hostlog请根据实际自定义配置文件名修改。
    • 支持读取多个配置文件。

ASCEND_VNPU_SPECS

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

  • Atlas 推理系列产品(配置Ascend 310P AI处理器)仅支持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_RUNTIME_OPTIONS的取值包含VIRTUAL时,ASCEND_VNPU_SPECS参数将不再生效。

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

说明:
  • vir后面的数字表示AI Core数量。
  • c前面的数字表示AI CPU数量。
  • dvpp表示虚拟化时包含所有数字视觉预处理模块(即VPC,VDEC,JPEGD,PNGD,VENC,JPEGE)。
  • ndvpp表示虚拟化时没有数字视觉预处理硬件资源。
表2 其他参数解释

参数

参数说明

/dev/xsmem_dev

将内存设备管理挂载到容器。

/dev/event_sched

将事件调度的设备挂载到容器。

/dev/ts_aisle

将aicpudrv驱动对应的设备挂载到容器。

/dev/svm0

将内存管理的设备挂载到容器。

/dev/sys

将dvpp相关的设备挂载到容器。

/dev/vdec

将dvpp相关的设备挂载到容器。

/dev/vpc

将dvpp相关的设备挂载到容器。

/dev/log_drv

将日志记录相关的设备挂载到容器。

/dev/upgrade

将获取昇腾系统相关配置、固件设备挂载到容器。

/dev/spi_smbus

将设备带外spi通信相关的设备挂载到容器。

/dev/user_config

将管理用户配置相关的设备挂载到容器。

/dev/memory_bandwidth

将内存带宽相关的设备挂载到容器。

-v /var/slogd:/var/slogd

将宿主机日志进程文件以只读方式挂载到容器。

-v /var/dmp_daemon:/var/dmp_daemon

将dmp守护进程挂载到容器。

-v /var/log/npu/conf/slog:/var/log/npu/conf/slog

将npu日志模块挂载到容器。

-v /usr/lib64/libyaml-0.so.2:/usr/lib64/libyaml-0.so.2:ro

将宿主机libyaml的.so文件挂载到容器中。

-v /usr/local/Ascend/driver/tools:/usr/local/Ascend/driver/tools

将驱动相关工具目录“/usr/local/Ascend/driver/tools”挂载到容器中。

-v /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64

将驱动依赖动态库目录“/usr/local/Ascend/driver/lib64”挂载到容器中。

-v /usr/lib64/libtensorflow.so:/usr/lib64/libtensorflow.so

将tensorflow的aicpu算子库文件“/usr/lib64/libtensorflow.so”挂载到容器中。

-v /usr/lib64/aicpu_kernels:/usr/lib64/aicpu_kernels

将aicpu lib库目录“/usr/lib64/aicpu_kernels”挂载到容器。

-v /sys/fs/cgroup/memory:/sys/fs/cgroup/memory:ro

将宿主机查询内存占用率所需依赖目录“/sys/fs/cgroup/memory”以只读方式挂载到容器中。

-v /etc/ascend_install.info:/etc/ascend_install.info

将宿主机安装信息文件“/etc/ascend_install.info”挂载到容器中。

-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info

将宿主机版本信息文件“/usr/local/Ascend/driver/version.info”挂载到容器中,请根据实际情况修改。

workload-image:v1.0 /bin/bash

生成的镜像文件。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词