启动容器
- 下载完成镜像后,执行以下命令启动容器。
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
设定权重挂载的路径,需要根据用户的情况修改。
说明:请将权重文件和数据集文件同时放置于该路径下。
- 执行以下命令进入容器。
1docker exec -it <container-name> /bin/bash
父主题: MindIE视图生成推理快速入门