我有一个 amd rx 6600,我正在尝试将 pytorch 与 rocm 一起使用。我正在运行 archlinux 并使用发行版提供的软件包。当我尝试访问 gpu 内存时,程序崩溃了。似乎正在分配内存,但我无法读取内存。这是代码:
import torch
# check for amd hip
print(torch.cuda.is_available())
print(torch.version.hip)
device = torch.device('cuda')
id = torch.cuda.current_device()
# print gpu name
print(torch.cuda.get_device_name(id))
# no memory is allocated at first
print(torch.cuda.memory_allocated(id))
# store some variable in gpu memory
r = torch.rand(16).to(device)
# memory is allocated
print(torch.cuda.memory_allocated(id))
# crashes when accessing r
print(r[0])
这是输出:
~ > python test.py
Tru # gpu compute is available
5.4.22804- # rocm version
AMD Radeon RX 6600 # name of gpu
0 # memory allocation at start
512 # memory allocation after storing variable
zsh: segmentation fault (core dumped) python test.py # program crashes when reading variable
我的代码有问题吗?我该如何调试?在向包维护者提交错误报告之前,我想确定一下。任何帮助表示赞赏。
仅供参考,我只有一个简单的 AMD 台式机,并且是一个相当精通 Linux 的用户,但绝不是知识渊博的人,但是,我能够通过以下步骤解决这个完全相同的问题,尽管这只是一种解决方法,并没有最初解决你的问题。对于发现自己在这里的任何人,我希望这有助于在其他地方解决时作为修补程序。
系统规格:
tldr;谨慎尝试!确保您的 Linux 内核正确构建等
sudo apt update
sudo apt install rocm-libs miopen-hip rccl # this will install rocm dependencies, 14GB worth, so be patient!
pip install torch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 --index-url "https://download.pytorch.org/whl/rocm5.2"
pip install ipython
ipython
```sh
In [1]: import torch
...:
...: # check for amd hip
...: print(torch.cuda.is_available())
...: print(torch.version.hip)
...:
...: device = torch.device('cuda')
...: id = torch.cuda.current_device()
...: # print gpu name
...: print(torch.cuda.get_device_name(id))
...: # no memory is allocated at first
...: print(torch.cuda.memory_allocated(id))
...:
...: # store some variable in gpu memory
...: r = torch.rand(16).to(device)
...: # memory is allocated
...: print(torch.cuda.memory_allocated(id))
...: # crashes when accessing r
...: print(r[0])
True
5.2.21151-afdc89f8
AMD Radeon RX 6950 XT
0
512
tensor(0.3706, device='cuda:0')
In [3]: torch.__version__
Out[3]: '1.13.0+rocm5.2'
```
amdgpu-install
,更不用说,天哪,rocm 文档对于一个简单的普通用户来说很难阅读(正如我所认为的那样),并且总的来说,除非您非常熟悉 AMD GPU 架构,否则我发现它的安装效果很差。如果只是一个普通的旧apt-get
amdgpu-install
的尝试中构建 dkms
内核时出错(哎呀)所以我继续并按照此处的步骤操作确保重启时没有任何意外发生(https://askubuntu.com/a/1240434/1416884)。$ ll -ah /etc/alternatives/rocminfo
lrwxrwxrwx 1 root root 28 Apr 25 22:31 /etc/alternatives/rocminfo -> /opt/rocm-5.4.3/bin/rocminfo
[here]
,虽然它正在建设中,但它应该只需要一个 bash install.sh
好吧,希望这有帮助!