下载
中文
注册

容器化部署MindIE

本章节指导用户进行MindIE容器化部署,请确保服务器能够连接网络。

前提条件

  • 宿主机已经安装过驱动和固件,详情请参见安装驱动和固件
  • 用户在宿主机自行安装docker(版本要求大于等于18.03)。
  • 配置源之前,请确保安装环境能够连接网络。

操作步骤

  1. 拉取镜像。
    docker pull ubuntu:22.04

    此处拉取ubuntu22.04仅为示例,用户可拉取其他支持的操作系统版本,但确保镜像拉取的操作系统符合支持的操作系统中的要求。

  2. 拉取容器,挂载宿主机目录。在容器部署过程中,用户无需在容器内安装驱动,只需根据不同产品类型将如下目录挂载至容器内,并在容器内安装MindIE的软件依赖,完成容器部署。

    可参考如下示例命令启动容器,具体挂载信息可根据产品路径和实际需求修改。

    docker run -it \
    --name MindIE \
    --ipc=host \
    --device=/dev/davinci0 \
    --device=/dev/davinci2 \
    --device=/dev/davinci4 \
    --device=/dev/davinci_manager \
    --device=/dev/devmm_svm \
    --device=/dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro \
    -v /usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/common \
    -v /usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/driver/lib64/driver \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v /etc/vnpu.cfg:/etc/vnpu.cfg \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    ubuntu:22.04 /bin/bash
    表1 参数说明

    参数

    参数说明

    --device

    表示映射的设备,可以挂载一个或者多个设备。

    需要挂载的设备如下:

    • /dev/davinciX:NPU设备,X是ID号,如:davinci0。
    • /dev/davinci_manager:davinci相关的管理设备。
    • /dev/devmm_svm:内存管理相关设备。
    • /dev/hisi_hdc:hdc相关管理设备。
    说明:

    可根据以下命令查询device个数及名称方式,根据需要绑定设备,修改上面命令中的"--device=****"。

    ll /dev/ | grep davinci

    -v /usr/local/dcmi:/usr/local/dcmi

    将宿主机dcmi的.so和接口文件目录“/usr/local/dcmi”挂载到容器中,请根据实际情况修改。

    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro

    将宿主机npu-smi工具“/usr/local/bin/npu-smi”以只读模式挂载到容器中,请根据实际情况修改。

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

    将宿主机目录“/usr/local/Ascend/driver/lib64/ ”挂载到容器,请根据驱动所在实际路径修改。

    -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”挂载到容器中,请根据实际情况修改。

    --ipc=host

    可能存在容器中共享内存不足的情况,启动容器时需要添加该参数以配置和host宿主机共享内存。

    --name

    容器名。

    挂载后请将/usr/local/Ascend/driver/下的so路径配置到LD_LIBRARY_PATH中,如下所示:

    export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
  3. 进入容器。
    docker exec -it MindIE /bin/bash
  4. 在容器内安装依赖,详情请参见安装依赖章节进行安装。
  5. 在容器内安装CANN的开发套件包、二进制算子包和加速库软件包,请参照安装CANN章节进行安装。

    在一个全新的容器内可能会出现apt源下载路径问题,请用户配置ubuntu22.04的专用源,提升下载速度。

    安装过程需要下载相关依赖,请确保安装环境能够连接网络。

    请在root用户下执行如下命令检查源是否可用。

    apt update

    如果命令执行报错或者后续安装依赖时等待时间过长甚至报错,则检查网络是否连接或者把“/etc/apt/sources.list”文件中的源更换为可用的源或使用镜像源(以配置华为镜像源为例,可参考华为开源镜像站)。

  6. 在容器内安装Python环境,请参见编译安装Python3.10章节进行安装。
  7. 在容器内安装PyTorch,请参见《Ascend Extension for PyTorch 配置与安装》中的“安装PyTorch框架”章节进行安装。
  8. 在容器内安装ATB Models,请参见安装ATB Models章节进行安装。
  9. 安装MindIE软件包,请参照安装MindIE进行安装。

    安装完成后,即可在容器内进行MindIE的业务部署。