玩转AMD+PyTorch
作者Lou Xiao创建时间2023-08-13 23:16:24更新时间2023-08-13 23:16:24
0. 前言
最近接触到基于AMD显卡的深度学习平台,不同于Nvidia平台,以AMD GPU平台的深度学习生态不够完善,在日常使用中存在诸多困难。
经过不断的试错摸索,寻找了一套简单有效的操作流程,现整理成文字,作为新手的快速入门"傻瓜式"教程。
1. 服务器简要说明
服务器配置说明:
规格 | 说明 |
---|---|
内存 | 128GiB |
CPU | AMD CPU 2GHz 32core x2; 共计64核心 |
显卡 | AMD GPU 16GB gfx906, x2 |
存粗 | 100TB的nfs共享存储 |
显卡性能测试
使用相同的测试代码,torch.Size([16, 3, 512, 512]),batch size=16。
显卡型号 | Time/Batch/seconds |
---|---|
GeForce RTX 2080 Ti | 0.50 |
AMD GPU(gfx906) 官方显卡驱动 + 官方公版ROCm+官方PyTorch | 1.70 |
AMD GPU(gfx906) 官方显卡驱动(/显卡驱动)+ 订制DTK + 订制PyTorch | 0.77 |
2. 快速安装PyTorch
2.1. 登陆 dcu服务器
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
# 服务器:N01,N02,..,N20
2
ssh N01
2.2. 下载并安装mimiconda(首次安装)
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
wget -c "https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh" -O 'Miniconda3-latest-Linux-x86_64.sh'
2
/bin/bash ./Miniconda3-latest-Linux-x86_64.sh -b -u -p "$HOME/.miniconda"
2.3. 修改shell的配置文件(首次安装)
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
cat >> "$HOME/.bashrc" <<'EOF'
2
# >>> conda init >>>
3
if [ -f "$HOME/.miniconda/etc/profile.d/conda.sh" ]; then
4
source "$HOME/.miniconda/etc/profile.d/conda.sh"
5
CONDA_CHANGEPS1=true conda activate base
6
else
7
export PATH="$HOME/.miniconda/bin:$PATH"
8
fi
9
# <<< conda init <<<
10
EOF
11
12
# !!! 重新加载配置文件(很重要)
13
source "$HOME/.bashrc"
2.4. 设置python软件包的仓库地址的国内镜像(首次安装,提高python包的安装速度)
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
3
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
4
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
5
conda config --set show_channel_urls yes
2.5. 创建PyTorch的运行环境(日常重复执行N次)
!!! 这个环节很重要,注意操作顺序。
⓵创建一个运行环境
- 环境名称是
Torch
(也可以是其他任何英文名称,叫什么名字不影响); - python版本必须是
3.8
; - 需要安装
openmpi=4.1
。
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
conda create -n Torch python=3.8 openmpi=4.1
2
conda activate Torch
⓶安装PyTorch(关键步骤)
- 安装特殊优化的PyTorch,此处是订制版本,且PyTorch版本是
1.13.1
。 - 在路径
/dcu/public/dtk-23.04/
存放有 定制的安装包:- torch-1.13.1+git55d300e.abi0.dtk2304-cp38-cp38-manylinux2014_x86_64.whl
- torchaudio-0.13.1+8bfbf47.abi0.dtk2304.torch1.13.1-cp38-cp38-manylinux2014_x86_64.whl
- torchvision-0.14.1+git9134838.abi0.dtk2304.torch1.13-cp38-cp38-manylinux2014_x86_64.whl
- deepspeed-0.13.5+bc0d246-cp38-cp38-linux_x86_64.whl (预编译的DeepSpeed安装包)
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
pip install /dcu/public/dtk-23.04/*.whl
⓷测试PyTorch能够正常使用GPU
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
python -c "import torch;print(torch.cuda.is_available())"
若结果如下图所示,则表示安装成功!
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
$ python -c "import torch;print(torch.cuda.is_available())"
2
True
⓸安装其它python包
根据需求安装其它软件包:pip install xxx==x.y.z
和 conda install xxx=x.y.z
。
4. 关于dcu超算的备注:
申请计算资源时,一定要全额申请,比如1个计算节点(cpu:32核,ram:128GB,dcu:4)
申请4个dcu节点:
1.双击鼠标左键复制此行;2.单击复制所有代码。
1
salloc -p -N 4 --mem-per-gpu=32G --cpus-per-dcu=8 --dcus-per-node=4
5. 一点细节
服务器使用了module
软件来管理AMD的订制套件(主要是动态连接库:libxxx.so
)。
登陆服务器后,默认只激活了compiler/dtk/23.04
,这个就是AMD显卡的软件库,订制版的PyTorch依赖它。
我的建议是:忘记module
,忘记compiler/dtk/23.04
,则炼丹体验大幅度提升。
如果不小心,操作module了,破坏了运行环境,只需登出再重新登陆,则恢复默认。
文章目录