• 曙光云使用说明


    平台链接

    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/
    
    • 1

    添加权限并运行

    chmod +x Miniconda3-py37_4.9.2-Linux-x86_64.sh
    mkdir -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
    
    • 1
    • 2
    • 3
    • 4

    初始化 conda 环境

    ~/miniconda3/bin/conda init
    source ~/.bashrc
    
    • 1
    • 2

    先换个清华源(加速)

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    conda创建python3.7环境

    conda create -n yolov5 python=3.7
    
    • 1

    激活环境

    conda activate yolov5
    
    • 1

    本地安装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
    
    • 1

    进入whl所在目录看看

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

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

    # 安装torch
    pip install /public/software/apps/DeepLearning/whl/dtk-21.04/torch-1.8.0a0+56b43f4-cp37-cp37m-linux_x86_64.whl
    # 安装torchvision
    pip install /public/software/apps/DeepLearning/whl/dtk-21.04/torchvision-0.9.0a0-cp37-cp37m-linux_x86_64.whl
    
    • 1
    • 2
    • 3
    • 4

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

    # 安装自己想要的包
    pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install Pillow
    pip install scipy
    
    • 1
    • 2
    • 3
    • 4

    开始使用

    查看所在队列

    whichpartition
    
    • 1

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

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

    登录计算节点

    # ssh 节点
    ssh b01r4n05
    
    • 1
    • 2

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

    module switch compiler/dtk/21.04
    
    • 1

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

    vi  ~/pytorch_env.sh
    
    export
    LD_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命令,这关系到服务器能不能找到PyTorch
    source ~/pytorch_env.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    conda activate yolov5
    
    • 1

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

    python
    
    import torch
    torch.cuda.is_available()
    torch.__version__
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    cd ~/ywj/yolov5-colab
    python train.py --data data/citrus.yaml --cfg models/yolov5s.yaml  --weights weights/yolov5s.pt --epochs 150 --batch-size 4
    
    • 1
    • 2

    查看DCU状态的命令

    hy-smi
    
    • 1

    【注意】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.04
    source ~/pytorch_env.sh
    source ~/miniconda3/etc/profile.d/conda.sh
    conda activate yolov5
    cd ~/ywj/yolov5-colab
    python train.py --data data/citrus.yaml --cfg models/yolov5s.yaml  --weights weights/yolov5s.pt --epochs 10 --batch-size 8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    提交yolo.sh作业文件

    sbatch yolo.sh
    
    • 1

    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 -p
    conda 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

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

  • 相关阅读:
    【WPF】Dispatcher 与消息循环
    设计模式之观察者模式、访问者模式与模板方法模式
    Flutter组件--Padding和AnimatedPadding
    【Java 基础篇】Java Lambda表达式详解
    【论文精读7】MVSNet系列论文详解-PVA-MVSNet
    Linux信息系统相关的命令
    Java21的虚拟线程Virtual Thread初体验
    『 MySQL数据库 』数据库基础之表的基本操作
    剑指 Offer 03. 数组中重复的数字
    python正则化表达式
  • 原文地址:https://blog.csdn.net/weixin_43800577/article/details/127918593