主要步骤参考这位博主写的和我的一些补充:
曙光云使用说明_dcu卡___Wedream__的博客-CSDN博客https://blog.csdn.net/weixin_43800577/article/details/127918593因为他写的时候比较早,现在这个时间点使用需要更新一些东西,大家对照到需要更改的部分:
从创建虚拟环境这一步开始更改一下:
重点:我是跑的yolov8,需要比较新的python环境,所以这里要选择python3.8(也可也选择3.9、3.10 但是要安装对应版本的Pytorch !)
以py3.8为例:
#创建环境
conda create -n yolov8 python=3.8
#激活环境
conda activate yolov8
本地安装PyTorch1.13(重点)
由于曙光云使用的是国产GPU(即DCU),硬件是基于ROCm的,因此不能适配PyTorch官网下载的包(无法调用DCU),因此只能使用曙光云平台提供的编译好的PyTorch包进行安装。切忌不能使用pip install torch==1.13.0 torchvision的命令直接安装,而应该选择曙光云本地提供的包进行安装。参考此链接:https://ac.sugon.com/doc/1.0.6/11276/general-handbook/compile/pytorch110.html
注意这里的目录需要用最新的,以后可能会有更新的,要去询问一下客服不同版本的python对应框架的放置位置~!
本地whl所在目录 (那个博主之前的介绍,这里已经更新到在 dtk-23.10里)
cd /public/software/apps/DeepLearning/whl/dtk-23.10/pytorch
输入: ls 查看当前的目录情况
进入py38查看
cd /public/software/apps/DeepLearning/whl/dtk-23.10/pytorch/py38
然后进行安装:
pip install torch-1.13.1+git7d2dd01.abi0.dtk2310-cp38-cp38-manylinux2014_x86_64.whl
pip install torchvision-0.14.1+gitf78f29f.abi0.dtk2310.torch1.13-cp38-cp38-manylinux2014_x86_64.whl
之后就是申请DCU 了:
#查看所在队列
whichpartition
# salloc -p 队列名 -N 1 --gres=dcu:申请DCU的数量
#例如:
salloc -p hebhdnormal -N 1 --gres=dcu:4
#登录节点
# ssh 节点
ssh b01r4n05
#切换rocm编译器版本(加载dtk23.10),跟后续使用GPU的关系很大!
module load compiler/dtk/23.10
如下:
添加环境变量:
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
#退出
(ESC + :+ w+ q+! +回车 ) # " !" 有时候需要,有时候不需要
# 记得以后每次登录新的节点时,一定要执行一次source ~/pytorch_env.sh命令,这关系到服务器能不能找到PyTorch
source ~/pytorch_env.sh
#激活环境
source/conda activate yolov8
#验证
python
import torch
torch.cuda.is_available()
torch.__version__
至此虚拟环境+pytorch 基本环境安装完毕!
(另外我遇到好多就是一些其他的库安装不了的问题,这个应该是没有联网,需要向客服申请权限进行联网)
最后大家还是用脚本的方式提交作业,客服说命令行运行起来还是有问题的,我在跑程序就是有问题,经常是如下的内核死掉的问题。
2、批作业提交(除了使用salloc的另一种提交作业的方式)
提示:除了使用salloc的另一种提交作业的方式,这种方式关了网页程序也能在后台跑
参考链接:https://ac.sugon.com/doc/1.0.6/11276/general-handbook/scheduler/sbatch.html
创建test.sh作业文件 (注意要根据自己的conda目录,环境更换)
#!/bin/bash
#SBATCH -p hebhdnormal#换成您可以使用的队列
#SBATCH -N 1 #节点数
#SBATCH -n 32 #核心数,与dcu卡数为1:8的关系
#SBATCH --gres=dcu:4 #dcu卡数
#SBATCH -J yolo #作业名称
source /public/home/acka5kccvb/A/etc/profile.d/conda.sh
conda activate dtk23.10_torch1.13 #换成您的conda环境
source /public/home/acka5kccvb/pytorch_env.sh
module rm compiler/rocm/2.9
module load compiler/dtk/23.10
module list
#修改为您自己的程序执行指令
python mytrain.py
1.作业提交页面选择 : 基础模板
2. 选择有DCU的地区,用调度脚本,选好工作目录以及编辑好的脚本
然后提交作业即可。
提交成功在作业管理里查看作业日志。
新用户最多用两个节点,8个dcu。
这里只改节点数为2,核数64,不改动dcu数即可。如:
最后附加一些命令行的命令:
在Linux中,你可以使用cd命令来改变当前工作目录。要返回上一级目录,可以使用以下命令:
cd ..
这会将当前目录更改为上一级目录。如果你想直接返回到用户的主目录,可以使用:
cd ~
提交作业:sbatch 脚本名
查看作业:squeue
取消作业:scancel 作业号 (作业号:执行squeue,jobid下面的数字)
实时查看输出:tail -f yolo/slurm-11647333.out(作业名字)
另外大家有其他问题可以联系客服工程师,解决问题还是比较快的!