前言
本人设备7600x + 7700xt,爱打点游戏碰巧也是看到A卡可以windows原生支持ROCm,并且SD运行效果还算理想,所以买了A卡(不咋掉驱动但是CS2真有问题)
在看到pytorch官网没法直接Windows直接ROCm后就选择了Ubuntu,但是一开始下的24.04,会导致包的版本不一样,官方的指南也是22.04,所以最后还是用的这个(老实了)
Linux解决方案
首先是安装ROCm
官方文档:Quick start installation guide — ROCm installation (Linux)
需要注意的问题就在于如果你需要的是pytorch,那么最好按照以下的代码来进行,因为linux下pytorch只支持ROCm6.0(pytorch官网写了)
sudo apt update && sudo apt upgrade
sudo apt install wget gnupg2
wget https://repo.radeon.com/amdgpu-install/6.0/ubuntu/jammy/amdgpu-install_6.0.60000-1_all.deb
sudo apt install ./amdgpu-install_6.0.60000-1_all.deb
#列出可用的用例,根据需要选择合适用例
sudo amdgpu-install --list-usecase
#这里我们只安装rocm,不安装dkms(不动原有的驱动)
sudo amdgpu-install --usecase=rocm --no-dkms
#添加用户组并重启
sudo usermod -a -G render $LOGNAME
sudo usermod -a -G video $LOGNAME
sudo reboot
之后重启系统,输入
rocm-smi#若安装成功,应该输出显卡信息
安装pytorch
按照pytorch官网的安装方式,简单且快捷,最好用conda虚拟环境(不用也没啥)
在终端输入
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
在这个阶段的验证,开python环境,以下代码结果返回TURE即为成功(暂时)
import torch
torch.cuda.is_available()
那么比较帅的观众就要问了,为什么是暂时的呢?很简单,打开Pycharm不就是了,一运行代码检验一下就老实了,具体报错可以自己试试
运行你的项目之前,有一项必要的环境变量配置
在bashrc里加上这样的一行(RX6000系列显卡和7000不一样,6000系把11.0.0换成10.3.0)
export HSA_OVERRIDE_GFX_VERSION=11.0.0
再去pycharm就没问题了
驱动打成了会提示正在使用RX7700XT这种话。
Windows解决方案
希望你是看了前面一堆之后才来看的,因为Win的解决方案很短
在你的环境中这样
pip install torch-directml
好了,安完了
验证:
import torch
import torch_directml
dml=torch_directml.device()
tensor1 = torch.tensor([1]).to(dml) # Note that dml is a variable, not a string!
tensor2 = torch.tensor([2]).to(dml)
for i in range(1000000):
dml_algebra = tensor1 + tensor2
dml_algebra.item()
运行结果正常就对了。
损耗
等我之后测测再更吧,我也好奇这两种哪个更好一点,毕竟都不是人家N卡正规军