DCU上基础环境搭建之docker的使用

1 篇文章 0 订阅
1 篇文章 0 订阅


今天给大家介绍如何在DCU进行docker环境的搭建以及如何使用docker部署环境

docker简介与命令

docker简介

Docker 是一种开源的平台,用于开发、运输和运行应用程序。它通过将应用程序及其所有依赖项打包成一个标准化的单元,称为容器,使得应用程序能够在任何环境中一致地运行。容器是轻量级的虚拟化技术,具有高效的资源隔离和便捷的部署能力。Docker 解决了传统虚拟机在资源利用率和启动速度方面的不足,通过共享主机操作系统内核来实现更快的启动和更高的资源利用率。它的核心组件包括 Docker Engine、Docker Hub 和 Docker Compose。Docker Engine 用于创建和管理容器,Docker Hub 提供镜像的集中存储和分发,Docker Compose 允许定义和运行多容器应用。Docker 广泛应用于持续集成与持续部署(CI/CD)、微服务架构、开发和测试环境等领域,显著提高了开发效率和环境一致性。

docker基础命令

1、查看docker版本

docker --version

2、拉取镜像

docker pull <镜像名>

3、列出镜像

docker images

4、列出容器

docker ps -a

5、停止容器

docker stop <容器ID或名称>

6、删除镜像

docker rmi <镜像ID或名称>

7、启动容器

docker start <容器ID或名称>

8、进入已经启动的容器

docker exec -it <容器ID或名称> /bin/bash

9、通过镜像创建容器

docker run <镜像名>

DCU上如何配置dcoker

本次服务器的操作系统为麒麟v10,平台为DCU-K100AI*4。

docker的下载和安装

docker压缩包远程下载

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.10.tgz 

docker的离线安装

tar -zxvf docker-20.10.10.tgz
cp docker/* /usr/bin

安装完毕以后,需要手动编写docker.service

vi /etc/systemd/system/docker.service

写入以下内容

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

退出保存,并更改权限

chmod +x /etc/systemd/system/docker.service

重启一下dcoker服务

sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl restart docker
sudo systemctl status docker

验证docker状态是否正确

sudo systemctl status docker

显示docker.service状态为enabled即可
显示docker.service状态为enabled即可

拉取DCU镜像

本次以1.13.1-ubuntu20.04-dtk23.10-py39镜像为例,其中1.13为torch版本,dtk23.10为DCU软件栈版本,py39为Python版本3.9

docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:1.13.1-ubuntu20.04-dtk23.10-py39

拉取完毕之后,通过docker images命令查看镜像id
在这里插入图片描述
其中IMAGE ID代表此镜像的ID

创建容器

本次以大家比较常用的yolov5代码为例,创建一个名称为yolov5的容器,首先新建一个dcoker.sh的脚本,通过命令vim docker.sh建立,写入以下内容并保存退出

docker run -it --name yolov5 --network=host --privileged \
    --device=/dev/kfd --device=/dev/dri \
    --ipc=host --shm-size=16G --group-add video \
    --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
    -v /opt/hyhal:/opt/hyhal \
    -v /home:/home \
    069ed2f1bc8c /bin/bash

简单介绍一下参数意义
–name表示容器名字,可以自己修改,不可与已有容器重名
-v 表示映射目录,其中-v /opt/hyhal:/opt/hyhal是必加项,包含了一些DCU的内容;-v /home:/home指的是将本机/home目录下的所有文件映射到容器的/home目录。代表在容器中操作/home目录中的文件和在本机操作是同步的。
069ed2f1bc8c指的是镜像的ID。
其余参数无需修改
通过bash docker.sh来创建容器
后续进入容器请使用docker exec -it yolov5 /bin/bash命令

进入后检查基础的环境,通过命令hy-smi
在这里插入图片描述
到此基础容器搭建完毕,可以通过pip list查看容器中都安装了哪些库,默认安装了torch等一些基础库。其中torch为DCU定制版,除版本号后缀不同以外,不影响基础使用。
如不慎卸载torch后,需要在https://developer.hpccube.com/tool该网址的DAS区下载适配好的torch到本地,然后通过pip install torch*安装,或者删除该容器重新建容器也是可以的。

yolov5代码部署

代码下载和环境搭建

依然以yolov5为例,从**https://sourcefind.cn/#/model-zoo/list**中搜索yolov5

在这里插入图片描述
进入后,点击WGET下载,使用wget命令下载代码
在这里插入图片描述
下载后以压缩包的形式保存,通过unzip 命令解压
如遇zip命令无效
通过以下命令安装zip依赖

apt-get update
apt-get install zip

解压后通过cd命令进入到目录yolov5_pytorch
安装yolov5相关依赖requirements.txt

pip insatll -r requirements.txt

如果网速过慢,可以先执行下面命令配置依赖源

pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/

设置完成后,重新执行pip insatll -r requirements.txt

训练

单机单卡

命令行运行以下内容

export HIP_VISIBLE_DEVICES=0
export USE_MIOPEN_BATCHNORM=1


python3 train.py --batch 32 --data coco.yaml --cfg 'yolov5m.yaml' --weights '' --project 'run/train' --hyp 'data/hyps/hyp.scratch-high.yaml' --epochs 1000  2>&1 | tee  yolov5m.log

单机多卡

#以单机四卡为例子
export HIP_VISIBLE_DEVICES=0,1,2,3
export HSA_FORCE_FINE_GRAIN_PCIE=1
export USE_MIOPEN_BATCHNORM=1

python3 -m torch.distributed.run --nproc_per_node 4 train.py --batch 128 --data coco.yaml --cfg 'yolov5m.yaml' --weights '' --project 'run/train' --hyp 'data/hyps/hyp.scratch-high.yaml' --device 0,1,2,3 --epochs 1000 2>&1 | tee  yolov5m_4.log

参考网站

1、开发者社区:https://developer.hpccube.com/tool
2、光源(模型和代码仓库):https://sourcefind.cn/#/main-page
3、yolov5适配流程:https://sourcefind.cn/#/model-zoo/1712313696125140994

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值