方式三:容器安装方式
本章节指导用户进行MindIE容器化安装,请确保服务器能够连接网络。
前提条件
- 宿主机已经安装过NPU驱动和固件,如未安装,请参见《CANN 软件安装指南》中的“选择安装场景”章节或“选择安装场景”章节(社区版)进行安装,按如下方式选择安装场景。
- 安装方式:选择“在物理机上安装”。
- 操作系统:选择使用的操作系统,MindIE支持的操作系统请参考硬件配套和支持的操作系统。
- 业务场景:选择“训练&推理&开发调试”。
- 宿主机已参见物理机/容器安装方式章节准备好需要安装的软件包。
- 用户在宿主机自行安装Docker(版本要求大于或等于24.x.x)。
- 配置源之前,请确保安装环境能够连接网络。
操作步骤
- 拉取操作系统镜像。
1docker pull ubuntu:22.04
此处拉取Ubuntu 22.04仅为示例,用户可拉取其他支持的操作系统版本,确保拉取的镜像操作系统符合硬件配套和支持的操作系统中的要求。
- 拉起容器,挂载宿主机目录。在容器安装过程中,用户无需在容器内安装驱动,只需根据不同产品类型将以下示例中的目录挂载至容器内。
可参考如下示例命令启动容器,具体挂载信息可根据产品路径和实际需求修改。
1 2 3 4 5 6 7 8 9 10 11
docker run -it -d --net=host --shm-size=1g \ --name <container-name> \ --device=/dev/davinci_manager:rwm \ --device=/dev/hisi_hdc:rwm \ --device=/dev/devmm_svm:rwm \ --device=/dev/davinci0:rwm \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \ -v /usr/local/Ascend/firmware/:/usr/local/Ascend/firmware:ro \ -v /usr/local/sbin:/usr/local/sbin:ro \ -v /path-to-weights:/path-to-weights:ro \ ubuntu:22.04 bash
对于--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 参数说明 参数
参数说明
--shm-size=1g
可能存在容器中共享内存不足的情况,启动容器时需要添加该参数以配置和host宿主机共享内存。
--name
容器名,请根据需要自行设定。
--device
表示映射的设备,可以挂载一个或者多个设备。
需要挂载的设备如下:
- /dev/davinci_manager:davinci相关的管理设备。
- /dev/hisi_hdc:hdc相关管理设备。
- /dev/devmm_svm:内存管理相关设备。
- /dev/davinci0:需要挂载的卡号。
说明:可根据以下命令查询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
挂载容器内需要使用的工具。
-v /path-to-weights:/path-to-weights:ro
挂载宿主机模型权重所在目录。
- 确认npu-smi工具是否成功挂载(默认路径为“/usr/local/sbin/”,请根据实际情况调整路径)。
- 进入容器。
1docker exec -it <container-name> /bin/bash
- 请将/usr/local/Ascend/driver/下的so文件路径配置到LD_LIBRARY_PATH中,如下所示:
1 2
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
- 请参见编译安装Python章节在容器内安装Python环境。
- 请参见安装CANN~安装依赖章节在容器中安装依赖、CANN、PyTorch和ATB Models。
- 请参见安装MindIE软件包章节在容器中安装MindIE,安装完成后,即可在容器内进行MindIE的业务部署。
父主题: 安装MindIE