相关手册与软件准备
官方使用手册
用户手册:https://hpc.sustech.edu.cn/ref/cluster_User_Manual.pdf
培训视频:https://hpc.sustech.edu.cn/ref/meeting_20230810.mp4
启明2.0使用手册:https://hpc.sustech.edu.cn/ref/qiming_User_Manual_v3.0.pdf
Anaconda官方教程:https://hpc.sustech.edu.cn/ref/anaconda-install-by-user.html
安装前置软件
- FileZilla传输数据
filezilla是一款用于与远程服务器传输数据的软件。
下载FileZilla,下载教程参考https://blog.csdn.net/SoloVersion/article/details/124579221
FileZilla官方使用说明:https://welcome.filezilla-project.org/welcome?type=client&category=documentation_network&version=3.66.1
FileZilla官方网络设置手册:https://wiki.filezilla-project.org/Network_Configuration
按照步骤登录节点,注意:在站点管理器中,传输协议要选择SFTP!!!不然会连接失败。
- xshell登录节点
xshell用于远程登陆服务器以及进行命令行操作。
xshell安装官网:https://www.xshell.com/zh/free-for-home-school/
深度学习模型单节点训练
以yolov5最基本模型训练为例
1. 配置Anaconda
Anaconda官方教程:https://hpc.sustech.edu.cn/ref/anaconda-install-by-user.html
因为anaconda相关文件会存储在自己的工作文件夹里,所以和环境相关的步骤可以直接在登录节点执行。
下载Anaconda(只需完成一次)
test -d ~/softwares/python/anaconda3 || mkdir -p ~/softwares/python/anaconda3 #创建安装目录
wget https://mirrors.sustech.edu.cn/anaconda/archive/Anaconda3-2020.07-Linux-x86_64.sh #下载安装包
sh Anaconda3-2020.07-Linux-x86_64.sh -b -p ~/softwares/python/anaconda3/2020.07 #自动安装到目录
在安装目录写入环境变量文件anaconda.2020.07.source,此文件也可以放在任意计算时可以调用的目录,在命令行输入:
cat>~/softwares/python/anaconda3/2020.07/anaconda.2020.07.source<<EOF
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/work/ccse-tangh/softwares/python/anaconda3/2020.07/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "~/softwares/python/anaconda3/2020.07/etc/profile.d/conda.sh" ]; then
. "~/softwares/python/anaconda3/2020.07/etc/profile.d/conda.sh"
else
export PATH="~/softwares/python/anaconda3/2020.07/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
EOF
在用户目录写入.condarc文件,配置国内更新源,以便于加快更新和安装环境或者软件包的速度,在命令行输入:
cat>~/.condarc<<EOF
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.sustech.edu.cn/anaconda
default_channels:
- https://mirrors.sustech.edu.cn/anaconda/pkgs/main
- https://mirrors.sustech.edu.cn/anaconda/pkgs/free
- https://mirrors.sustech.edu.cn/anaconda/pkgs/r
- https://mirrors.sustech.edu.cn/anaconda/pkgs/pro
custom_channels:
conda-forge: https://mirrors.sustech.edu.cn/anaconda/cloud
msys2: https://mirrors.sustech.edu.cn/anaconda/cloud
bioconda: https://mirrors.sustech.edu.cn/anaconda/cloud
menpo: https://mirrors.sustech.edu.cn/anaconda/cloud
pytorch: https://mirrors.sustech.edu.cn/anaconda/cloud
simpleitk: https://mirrors.sustech.edu.cn/anaconda/cloud
EOF
加载环境变量,清理索引缓存,更新:
source ~/softwares/python/anaconda3/2020.07/anaconda.2020.07.source
conda clean -i
conda update --prefix ~/softwares/python/anaconda3/2020.07 anaconda -y
为每一个任务创建一个conda环境
直接在登陆节点创建并配置好requirement,在pbs文件里activate就可以了。在训练节点无法联网,不能下载相关包或者创建环境!!!
先激活bash使用conda:
conda init bash
source ~/.bashrc
然后就是标准conda操作了:
conda create -n yolov5 python=3.8 -y -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda activate yolov5
cd yolov5
pip install -r requirements.txt
再正常使用,比如创建,激活等
配置cuda+torch
这里不知道卡了多久,配置cuda和torch主要有几个要点,分别是:
- 显卡与驱动(NIVIADA driver)是否适配。
- cuda版本与显卡是否适配。
- torch是否为gpu版本
- torch版本与cuda,与python是否适配
- touchvision版本与torch是否适配。
详细内容见http://t.csdnimg.cn/KnLK9
注意没conda create一个环境都要手动装一下torch和torchvision
pip install torch-2.0.0+cu118-cp311-cp311-linux_x86_64.whl
pip install torchvision-0.15.1+cu118-cp311-cp311-linux_x86_64.whl
2. pbs文件编写
成功完成训练pbs文件示例:
!/bin/bash
#PBS -N yolov5_train
#PBS -l nodes=1:ppn=1,gpus=1
#PBS -l walltime=1:00:00
#PBS -o yolov5_train.out
#PBS -e yolov5_train.err
#PBS -A your_account
#PBS -V
#PBS -q gpu
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
# 查看gpu版本
#nvcc --version
# Display GPU information
# nvidia-smi
conda init bash
source ~/.bashrc
conda activate checkcuda5
export GIT_PYTHON_REFRESH=quiet
# 载入cuda
module load cuda/11.8
cd yolov5
python -c "import torch; print(torch.cuda.is_available())"
python train.py --img 640 --epochs 2 --data data/coco128.yaml --weights yolov5s.pt
# 退出 conda 环境
conda deactivate
3.作业提交与监控
因为我们的pbs文件是在win上编辑好后再传过去的,在提交之前需要转化为unix格式:
dos2unix train_job14.pbs
qsub -q 2a100-80 train_job14.pbs
队列选择
启明所有队列:
查看当前队列使用情况
qstat
查看自己的作业
bjobs