使用DCU的开始阶段需要的准备工作
1.去官网下载conda或者minconda,然后通过快传客户端(曙光计算官网旁下载对应计算服务的应用端和快传客户端,若不下载可能会有文件上传数量地限制)传到服务器上,之后执行source对应的下载的文件安装。
2.之后正常操作。创建一个python版本为3.8的虚拟环境(识别不到conda的话要去对应的安装conda的文件找到对应的conda,激活使用)
执行source 对应路径下的sh文件,我这个文件执行的命令就是
source /public/home/ac83k0ofiu/anaconda3/etc/profile.d/conda.sh
之后就可以正常使用conda了,下面命令是创建一个叫xiaozhi的python版本为3.8的虚拟环境
conda create -n xiaozhi python=3.8
3.第三步(注意,因为他是amd架构的GPU(DCU),所以不支持官网版本的pytorch和torchvision,要安装他适配的pytorch和torchvision)
路径为
/public/software/apps/DeepLearning/whl/dtk-22.10/pytorch/
之后下载安装对应python版本的pytorch和torchvision,因为我之前创建的python版本为3.8,所以要选择cp38的torch和torchvision,选一对即可
准备工作完成后
注意:直接运行程序是不行的,识别不了torch,需要先连接到计算中心**
1.查看所在队列(注意首字母小写)
命令:whichpartition
2.申请并登录计算节点,进行测试
salloc -p 队列名 -N 1 --gres=dcu:申请DCU的数量
N表示计算节点数, n表示核心数,–gres=dcu:申请DCU的数量
命令例子:
salloc -p hebhdnormal -N 1 -n 32 --gres=dcu:4
3.登录计算节点(ssh 节点)
ssh a01r3n02
4.切换到ROCm编译器
进入计算节点使用的时候 需要执行 下面两条命令 来适配上面的pytorch包
module rm compiler/rocm/3.3
module load compiler/rocm/dtk-22.10
5.激活conda环境(登录到计算节点后会退出之前的环境,所以需要重新激活环境)
source /public/home/ac83k0ofiu/anaconda3/etc/profile.d/conda.sh
conda activate xiaozhi
进入环境,查看DCU能不能用,依次执行以下命令(可选)
python
import torch
torch.cuda.is_available()
torch.version
查看DCU状态的命令(可选)
hy-smi
6.之后可以正常跑模型
小技巧:挂在服务器后台执行,并将运行数据写在train.log中
nohup python tools/train.py >train.log 2>&1 &(这个命令是你的连接断了程序也不会断,而是在服务器后台跑着,运行结果在对应的train.log文件夹中(和你直接执行代码命令行窗口的输出是一致的))
除了nohup命令你还可以写一个脚本文件,然后执行脚本文件也可以(大致如下所示,这个的话你就不用申请计算节点啥的,脚本里给你写了,直接执行就行,也就是把我们之前的操作都写在里面了)
切到对应的脚本目录,使用sbatch 脚本名执行就行(注意这里面的执行程序命令为相对路径,要根据脚本与执行程序所在相对位置进行调整)
例子:sbatch train.sh