平台链接

https://ac.sugon.com/ac/home/index.html

控制台界面

创建个人工作目录及上传文件。点击概览页面顶端的 E-Shell 菜单栏,进入所连主机的 Shell 终端。在用户目录下新建个人工作目录,如:mkdir ywj2

安装MiniConda(推荐)

参考链接:https://ac.sugon.com/doc/1.0.6/11250/general-handbook/software-tutorial/DeepLearning-1.html#1-miniconda%E5%AE%89%E8%A3%85

使用wget下载(下载时间可能有点久)

wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh -i https://pypi.tuna.tsinghua.edu.cn/simple/

添加权限并运行

chmod +x Miniconda3-py37_4.9.2-Linux-x86_64.shmkdir -p ~/miniconda3/bash Miniconda3-py37_4.9.2-Linux-x86_64.sh -b -f -p "~/miniconda3/"rm -rf Miniconda3-py37_4.9.2-Linux-x86_64.sh

初始化 conda 环境

~/miniconda3/bin/conda initsource ~/.bashrc

先换个清华源(加速)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/conda config --set show_channel_urls yes

conda创建python3.7环境

conda create -n yolov5 python=3.7

激活环境

conda activate yolov5

本地安装PyTorch1.7(重点

由于曙光云使用的是国产GPU(即DCU),硬件是基于ROCm的,因此不能适配PyTorch官网下载的包(无法调用DCU),因此只能使用曙光云平台提供的编译好的PyTorch包进行安装。切忌不能使用pip install torch==1.7.0 torchvision的命令直接安装,而应该选择曙光云本地提供的包进行安装。参考此链接:https://ac.sugon.com/doc/1.0.6/11276/general-handbook/compile/pytorch110.html

本地whl所在目录

/public/software/apps/DeepLearning/whl/dtk-21.04

进入whl所在目录看看

cd /public/software/apps/DeepLearning/whl/dtk-21.04

以安装PyTorch1.8为例(torch1.8和torchvision0.9适配)

# 安装torchpip install /public/software/apps/DeepLearning/whl/dtk-21.04/torch-1.8.0a0+56b43f4-cp37-cp37m-linux_x86_64.whl# 安装torchvisionpip install /public/software/apps/DeepLearning/whl/dtk-21.04/torchvision-0.9.0a0-cp37-cp37m-linux_x86_64.whl

根据项目的需求安装其他依赖(记得激活自己的环境再安装)。提示:除了与GPU有关的包(比如torch和torchvision等),其他包我们都可以从网上直接下载,即可以使用pip install numpy 这类命令直接从网上下载,无需曙光云本地提供。

# 安装自己想要的包pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simplepip install Pillowpip install scipy

开始使用

查看所在队列

whichpartition

申请并登录计算节点,进行测试

# salloc -p 队列名 -N 1 --gres=dcu:申请DCU的数量salloc -p wzhdtest -N 1 --gres=dcu:2

登录计算节点

# ssh 节点ssh b01r4n05

切换rocm编译器版本(加载dtk21.04),跟后续使用GPU的关系很大!

module switch compiler/dtk/21.04

在本地创建一个pytorch_env.sh的文件,添加环境变量!

vi~/pytorch_env.shexportLD_LIBRARY_PATH=/public/software/apps/DeepLearning/PyTorch_Lib/lib:/public/software/apps/DeepLearning/PyTorch_Lib/lmdb-0.9.24-build/lib:/public/software/apps/DeepLearning/PyTorch_Lib/opencv-2.4.13.6-build/lib:/public/software/apps/DeepLearning/PyTorch_Lib/openblas-0.3.7-build/lib:$LD_LIBRARY_PATH# 记得以后每次登录新的节点时,一定要执行一次source ~/pytorch_env.sh命令,这关系到服务器能不能找到PyTorchsource ~/pytorch_env.sh

激活conda环境(登录到计算节点后会退出之前的环境,所以需要重新激活环境)

conda activate yolov5

进入环境,查看DCU能不能用,依次执行以下命令

pythonimport torchtorch.cuda.is_available()torch.__version__

进入项目文件即可开始训练

cd ~/ywj/yolov5-colabpython train.py --data data/citrus.yaml --cfg models/yolov5s.yaml--weights weights/yolov5s.pt --epochs 150 --batch-size 4

查看DCU状态的命令

hy-smi

【注意】srun和salloc方式使用时需要保持E-Shell页面常开启,否则此终端对应的作业将出现结束。

补充

显卡相关

使用的显卡:海光 DCU (Deep Computing Unit)

  • 7nm 工艺,2.5D Interposer SoC 封装
  • TDP 300W
  • FP64 6.6 TF,FP32 13.1 TF,FP16 26.2 TF
  • 16GB HBM2(可支持32GB),带宽 1TB/s
  • PCIe 3.0 x16,支持升级到 PCIe Gen4
  • 支持 GPUDirect RDMA
  • 支持 OpenCL,兼容 CUDA 主流异构编程标准
  • 提供 BLAS, FFT, Sparse, Convolutions, Tensor, Softmax, LRN, BN, Activation, Pooling 等库函数
  • 已支持 TensorFlow, Caffe, Caffe2, Keras, …
  • 比2080TI快一些, 跑训练不如3080。
  • 硬件是基于ROCm的

批作业提交(除了使用salloc的另一种提交作业的方式)

提示:除了使用salloc的另一种提交作业的方式,这种方式关了网页程序也能在后台跑

参考链接:https://ac.sugon.com/doc/1.0.6/11276/general-handbook/scheduler/sbatch.html

创建yolo.sh作业文件

#!/bin/bash#SBATCH -o yolo.out#SBATCH --partition=wzhdtest#SBATCH --qos=low#SBATCH -J myFirstGPUJob#SBATCH --nodes=1 #SBATCH --ntasks-per-node=6#SBATCH --gres=dcu:1 module switch compiler/dtk/21.04source ~/pytorch_env.shsource ~/miniconda3/etc/profile.d/conda.shconda activate yolov5cd ~/ywj/yolov5-colabpython train.py --data data/citrus.yaml --cfg models/yolov5s.yaml--weights weights/yolov5s.pt --epochs 10 --batch-size 8

提交yolo.sh作业文件

sbatch yolo.sh

conda命令相关

//换源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/conda config --set show_channel_urls yes//恢复原来的源conda config --remove-key channels//新建conda环境conda create --name maskrcnn_benchmark python=3.7//查看环境conda info --env//清理conda缓存conda clean -pconda clean -t//删除环境conda remove --name new_env_name --all//复制环境,这个命令特别有用,假如一个环境有相应版本的PyTorch,那么就可以直接复制环境,再额外安装自己想要的包conda create --name new_env_name --clone old_env_name //导出环境conda env export > environment.yml//导入环境conda env create -f environment.yml//激活环境conda activate maskrcnn_benchmark

最后感谢小伙伴们的学习噢~