部署面向GPU计算的开放式软件平台ROCm。
# 序
为了在AMD平台上炼丹,不惜花了3天学习了 Linux 和 Conda 相关操作。
# 部署Conda
详见此处。
# 安装软件及依赖项并设置权限
1.安装依赖
sudo apt install wget vim git libstdc++-12-dev
至于 libstdc++-12-dev ,在启动依赖机器学习框架的程序时提示MIOpen(HIP) Warning,查阅相关资料发现是该软件包缺失。
2.为ROCm设置用户组
# 将当前用户添加进render和video组
sudo usermod -a -G render,video $LOGNAME
# 若想默认添加未来的所有用户进入render和video组,执行以下命令
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf
3. 下载并安装AMDGPU Installer
# 下载
wget https://repo.radeon.com/amdgpu-install/5.6/ubuntu/jammy/amdgpu-install_5.6.50600-1_all.deb
# 安装
sudo apt install ./amdgpu-install_5.6.50600-1_all.deb
请参考官方文档,根据自身系统及版本与机器学习框架所支持的版本下载并安装合适的软件包。具体而言,ROCm列举出一系列支持的系统、系统版本号及内核; 截至2023年7月,Pytorch仅支持ROCm5.4.2及5.5 (Nightly)。
# 通过AMDGPU Installer安装显卡驱动与ROCm
官方文档指出,当使用Docker容器安装时或安装多版本ROCm时均无需安装内核模式驱动。在此笔者仅安装最新版,并且安装有另外的显卡驱动 (玄学),因此没有添加 –no-dkms 选项。
sudo amdgpu-install --usecase=hiplibsdk,rocm
# 设置环境变量
重启系统后查看环境变量是否已自动添加以下路径。若没有,则需要手动修改以下环境变量: 1.指定查找共享库的路径; 2.执行文件的路径。
# 添加共享库的路径 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm-5.6.0/lib # 添加执行文件的路径 export PATH=$PATH:/opt/rocm-5.6.0/bin:/opt/rocm-5.6.0/rocprofiler/bin:/opt/rocm-5.6.0/opencl/bin
参考此处修改环境变量。
# 测试ROCm是否成功安装
在终端中输入 rocminfo 及 rocm-smi 后返回当前系统及显卡信息,则说明 ROCm 部署成功。
若ROCm (计算平台)已正常安装,接下来的步骤是安装合适的机器学习框架,如Pytorch、TensorFlow及其他框架。笔者以Pytorch举例。
# 安装Pytorch框架
使用 Conda 创建包含所需版本Python的虚拟环境。进入该环境,安装对应 ROCm 版本的Pytorch。
# 创建虚拟环境
conda create -n rocm1
# 进入虚拟环境
conda activate rocm1
# 安装Pytorch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2
测试Pytorch是否正确安装
import torch print(torch.cuda.is_available())
若返回 True 则意为正确调用GPU。
最后,查看自己的AMD显卡是否直接受ROCm支持。若不受直接支持,可以根据自己的 RADEON 型号通过环境变量伪装自己的GFX版本,进而正常使用ROCm:
# Radeon VII
export HSA_OVERRIDE_GFX_VERSION=9.0.6
# RX5700XT/RX5700/RX5500XT/RX6750XT/RX6700XT/RX6700/RX6650XT/RX6600XT/RX6600/RX6500XT/RX6400
export HSA_OVERRIDE_GFX_VERSION=10.3.0
# RX7900XTX/RX7900XT/RX7600
export HSA_OVERRIDE_GFX_VERSION=11.0.0