调试流程
注:这里的工作流程用于测试环境、练习使用;
准备工作
环境准备
- 给conda换源:
Reference: 修改默认Anaconda镜像源
vim ~/.condarc
# 插入以下内容
channels:
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- defaults
- 加载模块
module unload compiler/rocm/2.9
module load compiler/rocm/dtk-22.10
module load apps/anaconda3/5.2.0
- 创建环境
conda create -n dtk2210 python=3.9
- 安装本地PyTorch框架
source activate dtk2210
pip install /public/public_share/apps/dl_whl_dtk2210/torch-1.10.0a0+git2040069.dtk2210-cp39-cp39-manylinux2014_x86_64.whl
开始训练
- 申请节点:
salloc -n 32 -N 1 -p normal -t 0 --gres=dcu:4
## 选项说明
-n # cpu核数
-N # 节点数
-p # 分区队列
-t # 时间,0 即无限
--gres # GPU
## 成都超算使用的
# CPU是 Hygon C86 7185 32-core Processor
# GPU是 海光 DCU (Deep Computing Unit) 16GB * 4
- 查看节点信息:
squeue
- SSH到计算节点:
ssh a16r1n04
# 如果有多个节点,例如四个节点 c10r4n[00-01],ssh到每个节点时都要后缀其编号,ssh c10r4n00
- 加载模块,激活环境
module unload compiler/rocm/2.9
module load compiler/rocm/dtk-22.10
module load apps/anaconda3/5.2.0
source activate dtk2210
- 验证DCU可用否
python
import torch
torch.cuda.is_available()
torch.__version__
torch.cuda.device_count()
- 愉快享用免费算力8️⃣
其他常用的操作
资源查看
lscpu # cpu 信息
rocm-smi # DCU 状态
hy-smi # DCU 状态 conda下可用 和上面的命令差不都
另一个DCU状态查看工具:dcustat
pip install dcustat
dcustat
dcustat --watch # 动态刷新
conda相关
conda list # 查看装了哪些框架哪些包
conda env list # 查看 conda 环境
conda activate env_name
conda deavtive
常规使用流程
环境准备
在~/pre目录下
(我自定义的),
vim env.sh
, 编辑环境配置脚本
#!/bin/bash
module unload compiler/rocm/2.9
module load compiler/rocm/dtk-22.10
module load apps/anaconda3/5.2.0
source activate dtk2210
运行脚本 source env.sh
vim rocm-smi.sh
, 计算节点DCU状态重定向脚本
#!/bin/bash
# 无限循环
while true; do
# 执行 rocm-smi 命令并将标准输出重定向到 rocm-smi.out 文件
rocm-smi > ~/pre/rocm-smi.out
# 等待一秒
sleep 1
done
开始训练
使用salloc申请并 ssh 到的节点,需要shell保持活跃,否则可能被中断。所以salloc申请节点适用于测试,一般使用sbatch来跑任务。
- 写sbatch作业脚本
vim task.sh
#!/bin/bash
#SBATCH -p normal
#SBATCH -n 32
#SBATCH -N 1
#SBATCH --gres=dcu:4
#SBATCH -J test
#SBATCH -o ./log/%j.out
#SBATCH -e ./log/%j.err
# 配置环境 或 直接运行上面
标签:SBATCH,记录,module,成都,rocm,sh,smi,超算,节点
From: https://www.cnblogs.com/zhihh/p/18489338/Chengdu_HPC_Usage_Record