昇腾社区首页
中文
注册
开发者
下载

启动容器

  1. 下载完成镜像后,执行以下命令启动容器。
    docker run -it -d --net=host --shm-size=1g \
           --name <container-name> \
           -w /home \
           --device=/dev/davinci0 \
           --device=/dev/davinci1 \
           --device=/dev/davinci2 \
           --device=/dev/davinci3 \
           --device=/dev/davinci_manager \
           --device=/dev/hisi_hdc \
           --device=/dev/devmm_svm \
           -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
           -v /usr/local/dcmi:/usr/local/dcmi:ro \
           -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro \
           -v /usr/local/sbin/:/usr/local/sbin:ro \
           -v /path-to-weights:/path-to-weights:ro \
           
           mindie:2.1.RC2-800I-A2-py311-openeuler24.03-lts bash
    • “mindie:2.1.RC2-800I-A2-py311-openeuler24.03-lts”为镜像名称,可根据实际情况修改。
    • 对于--device参数,挂载权限设置为rwm,而非权限较小的rw或r,原因如下:
      • 对于Atlas 800I A2 推理服务器,若设置挂载权限为rw,可以正常进入容器,同时也可以使用npu-smi命令查看npu占用信息,并正常运行MindIE业务;但如果挂载的npu(即对应挂载选项中的davincixxx,如npu0对应davinci0)上有其它任务占用,则使用npu-smi命令会打印报错,且无法运行MindIE任务(此时torch.npu.set_device()会失败)。
      • 对于Atlas 800I A3 超节点服务器,若设置挂载权限为rw,进入容器后,使用npu-smi命令会打印报错,且无法运行MindIE任务(此时torch.npu.set_device()会失败)。
    表1 参数说明

    参数

    参数说明

    --privileged

    特权容器,允许容器访问宿主机的所有设备。

    --name

    表示给容器指定一个名称。<container-name>是容器的标识符,可以自行设置,且在当前系统中具有唯一性。如果不设置,Docker会自动分配一个随机名称。

    --device

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

    需要挂载的设备如下:

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

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

    ll /dev/ | grep davinci

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

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

    -v /usr/local/sbin:/usr/local/sbin:ro

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

    -v /path-to-weights:/path-to-weights:ro

    设定权重挂载的路径,需要根据用户的情况修改。

    说明:

    请将权重文件和数据集文件同时放置于该路径下。

  2. 执行以下命令进入容器。
    1
    docker exec -it <container-name> /bin/bash
    

更多详细信息,请参考启动容器章节。