部署推理容器

本章节指导用户在单台设备上执行相应命令启动容器镜像。若用户需要在FusionDirector平台批量部署容器镜像,可以参考MindX Edge 应用部署指南

前提条件

操作步骤

  1. root用户登录Atlas 200I SoC A1A200I SoC A1核心板。
  2. 执行以下命令启动容器镜像(用户请根据实际情况修改)。

    docker run -it -e ASCEND_VISIBLE_DEVICES=xxx --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 -v /var/slogd:/var/slogd -v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf -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 -v /usr/lib64/libtensorflow.so:/usr/lib64/libtensorflow.so workload-image:v1.0 /bin/bash
    若不使用Ascend-Docker-Runtime,可执行以下命令启动容器镜像:
    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/vpc --device=/dev/log_drv --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 -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /var/dmp_daemon:/var/dmp_daemon -v /var/slogd:/var/slogd -v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf -v /etc/hdcBasic.cfg:/etc/hdcBasic.cfg -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 -v /usr/lib64/libtensorflow.so:/usr/lib64/libtensorflow.so workload-image:v1.0 /bin/bash
    执行以上命令后,进入“/usr/local/bin”目录,执行run.sh脚本。
    表1 参数解释

    参数

    参数说明

    -e ASCEND_VISIBLE_DEVICES=xxx

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

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

    /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

    将dmp日志目录挂载到容器。

    -v /var/dmp_daemon:/var/dmp_daemon

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

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

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

    -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”挂载到容器。

    workload-image:v1.0 /bin/bash

    生成的镜像文件。