dockerfile使用说明
在此给出官方标准镜像对应的dockerfile,如需对官方镜像做自定义修改,可以参考标准dockerfile进行改动
若无自定义镜像需求,建议直接使用mindformers安装中提供的docker镜像链接
镜像内容
提供的标准镜像主要包含以下内容:
- Ubuntu: 20.04
- CANN: CANN 7.0.RC1.3.beta1
- MindSpore: 2.2.1
- MindSpore-Lite: 2.2.1
- MindFormers: 0.8.0
注意:镜像不包含Ascend硬件运行所需的固件和驱动,使用时需挂载宿主机的驱动;使用前请确认宿主机的固件驱动版本能够适配当前CANN版本,如不适配需要自行更新;昇腾固件驱动下载指引可参考配套MindSpore 昇腾软件安装指引(23.0.RC3),社区版固件驱动可从这里获取:固件与驱动
物理机dockerfile
提供了可用于Ascend服务器上的dockerfile,包括aarch架构和x86架构两个dockerfile
准备工作:
-
准备可用的昇腾服务器环境,确保可使用docker服务并且网络连接通畅;
注意:dockerfile构建镜像的过程中需下载较多网络资源,请确保网络连接通畅,否则镜像构建可能失败
-
服务器上安装适配的固件驱动,如已有适配固件驱动,可跳过
-
拉取ubuntu官方基础镜像
docker pull ubuntu:20.04
镜像构建命令:
cd docker/ascend_xxx
docker build . -t mindformers:0.8.0
构建成功后可通过 docker images 命令查询构建好的镜像信息
容器启动命令:
# --device用于控制指定容器的运行NPU卡号和范围
# -v 用于映射容器外的目录
# --name 用于自定义容器名称
docker run -it -u root \
--ipc=host \
--network host \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
--device=/dev/davinci2 \
--device=/dev/davinci3 \
--device=/dev/davinci4 \
--device=/dev/davinci5 \
--device=/dev/davinci6 \
--device=/dev/davinci7 \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /etc/localtime:/etc/localtime \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /var/log/npu/:/usr/slog \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
--name {请手动输入容器名称} \
mindformers:0.8.0 \
/bin/bash
验证镜像可用性:
npu-smi info # 检查npu卡挂载
pip list | grep mind # 检查相关python依赖安装情况
python -c "import mindspore;mindspore.run_check()" # 检查MindSpore安装正确性
python -c "import mindformers" # 检查无导入依赖问题
ModelArts dockerfile
modelarts上所使用的镜像与物理机有所不同,我们基于aicc给出的MindSpore镜像,安装MindFormers相关的环境依赖,以构建适用于modelarts的标准镜像
准备工作:
-
准备可用的昇腾服务器环境,确保可使用docker服务并且网络连接通畅;
-
拉取武汉aicc提供的MindSpore基础镜像
swr.cn-central-221.ovaijisuan.com/wuh-aicc_dxy/mindspore2_2_0:MindSpore2.2.0-cann7.0rc1_py_3.9-euler_2.8.3-D910B
镜像构建命令:
cd docker/aicc
docker build . -t mindformers_aicc:0.8.0
镜像推送:
构建的modelarts镜像,需推送至aicc上进行使用;相关内容请参照aicc提供的容器镜像服务 SWR的使用说明以及AICC上使用MindFormers教程