专属资源池最佳实践-线下环境与训练任务联动

举报
yangzilong 发表于 2022/09/17 19:03:09 2022/09/17
【摘要】 本场景下,我们使用线下GPU环境来承载调测阶段、ModelArts训练任务来承载批量运行阶段。

本文档是“ModelArts专属池使用”的一个子场景。本场景下,我们使用线下GPU环境来承载调测阶段、ModelArts训练任务来承载批量运行阶段。

 

场景特点:

线下GPU环境一般以root用户直接登陆使用,使用容器化方式隔离使用时也会默认以root执行容器。

训练任务默认以“ma-user”用户(uid=1000)来启动任务,如果需要支持以root执行,需要申请特殊白名单

线下容器镜像、文件系统数据需要能够和云上同步。镜像建议使用SWR同步,代码建议用OBS同步。如有可能,可以拉通线下到云上VPC的专线,此时文件同步可以直接通过挂载盘进行。

 

场景依赖:

已购买ModelArts训练专属资池,完成开发环境初始化操作,NAS VPC已经正确配置。

权限已经合理设置,拥有SFS Turbo服务的挂载权限。

线下有Linux服务器(带GPU),GPU驱动已经正常安装,nvidia-docker已正常安装,节点能够挂载云上SFS盘(需要专线打通)。或者,在SFSVPC下有一个带GPUECS节点,节点的GPU驱动已正常安装,nvidia-docker已正常安装。

注意:如果线下服务器无法挂载云上SFS盘,手工同步一下云盘的内容,保证云上云下一致即可。

 

实践流程:

1. ECS配置NFS目录

配置华为源

sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list

安装软件

sudo apt-get update
sudo apt-get install -y nfs-common

mkdir -p /mnt/sfs_turbo
#下条命令在SFS盘的详情页获取
mount -t nfs -o vers=3,nolock 192.168.0.xx:/ /mnt/sfs_turbo

 

2. 安装docker,下载pytorch基础镜像

docker pull pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel

运行调试环境

docker run -ti -d --gpus all --shm-size 16G -v /mnt/sfs_turbo/:/sfs_turbo pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel bash
#notice:  '/mnt/sfs_turbo' refers to path in host, '/sfs_turbo' refers to path in container.

安装apt依赖软件

apt-get install -y vim wget zip

开始进行调试

cd /sfs_turbo/demo

mkdir -p dog_cat_case
cd dog_cat_case
wget https://raw.githubusercontent.com/pytorch/examples/main/imagenet/main.py
wget https://ma-sa.obs.cn-north-4.myhuaweicloud.com/yangzilong/demos/dog_cat_1w.zip
unzip dog_cat_1w.zip

启动训练

python main.py -a resnet50 -b 128 --epochs 5 dog_cat_1w/

保存镜像

docker commit -a "yangzilong" -m "demo case" 79e716 swr.cn-north-4.myhuaweicloud.com/masa-poc/pytorch:1.8.1-cuda10.2-cudnn7-devel

 

3. 上传镜像到华为云SWR服务 

docker login -u cn-north-4@xxxxxxxxxx -p c3dc3b8fb75a7b76f02726aa9561e5b83e330f7121d17f8e6bdaf0d9b234eb2f swr.cn-north-4.myhuaweicloud.com
docker push swr.cn-north-4.myhuaweicloud.com/masa-poc/pytorch:1.8.1-cuda10.2-cudnn7-devel


4. 在训练任务里跑通

https://console.huaweicloud.com/modelarts/#/training

启动命令如:

cd /sfs_turbo/demo/dog_cat_case; /opt/conda/bin/python main.py -a resnet50 -b 128 --epochs 5 dog_cat_1w/

注意:SFS挂载的地址建议和ECS上启动docker-v参数的后半部分完全一致

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。