AI开发平台MODELARTS-在k8s集群配置Ascend使用环境:Step 4:docker run方式启动任务
Step 4:docker run方式启动任务
Snt9B集群在纳管到cce集群后,都会自动安装docker,如果仅做测试验证,可以不需要通过创建deployment或者volcano job的方式,直接启动容器进行测试。训练测试用例使用NLP的bert模型,详细代码和指导可参考Bert。
- 拉取镜像。本测试镜像为bert_pretrain_mindspore:v1,已经把测试数据和代码打进镜像中。
docker pull swr.cn-southwest-2.myhuaweicloud.com/os-public-repo/bert_pretrain_mindspore:v1 docker tag swr.cn-southwest-2.myhuaweicloud.com/os-public-repo/bert_pretrain_mindspore:v1 bert_pretrain_mindspore:v1
- 启动容器。
docker run -tid --privileged=true \ -u 0 \ -v /dev/shm:/dev/shm \ --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 /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /etc/hccn.conf:/etc/hccn.conf \ bert_pretrain_mindspore:v1 \ bash
参数含义:
- --privileged=true //特权容器,允许访问连接到主机的所有设备
- -u 0 //root用户
- -v /dev/shm:/dev/shm //防止shm太小训练任务失败
- --device=/dev/davinci0 //npu卡设备
- --device=/dev/davinci1 //npu卡设备
- --device=/dev/davinci2 //npu卡设备
- --device=/dev/davinci3 //npu卡设备
- --device=/dev/davinci4 //npu卡设备
- --device=/dev/davinci5 //npu卡设备
- --device=/dev/davinci6 //npu卡设备
- --device=/dev/davinci7 //npu卡设备
- --device=/dev/davinci_manager //davinci相关的设备管理的设备
- --device=/dev/devmm_svm //管理设备
- --device=/dev/hisi_hdc //管理设备
- -v /usr/local/Ascend/driver:/usr/local/Ascend/driver //npu卡驱动挂载
- -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi //npu-smi工具挂载
- -v /etc/hccn.conf:/etc/hccn.conf //hccn.conf配置挂载
- 进入容器,并查看卡信息。
docker exec -it xxxxxxx bash //进入容器,xxxxxxx替换为容器id npu-smi info //查看卡信息
图18 查看卡信息
- 执行下述命令启动训练任务。
cd /home/ma-user/modelarts/user-job-dir/code/bert/ export MS_ENABLE_GE=1 export MS_GE_TRAIN=1 bash scripts/run_standalone_pretrain_ascend.sh 0 1 /home/ma-user/modelarts/user-job-dir/data/cn-news-128-1f-mind/
图19 训练进程
查看卡占用情况,如图所示,此时0号卡被占用,说明进程正常启动。
npu-smi info //查看卡信息
图20 查看卡信息
训练任务大概会运行两小时左右,训练完成后自动停止。若想停止训练任务,可执行下述命令关闭进程,查询进程后显示已无运行中python进程。
pkill -9 python ps -ef
图21 关闭训练进程