深度学习AMD、ROCm、6800xt配置pytorch、CUDA

官方文档

对应torch下载地址

ROCm安装配置踩坑

  • 遇到的问题
  • 安装ubuntu系统更新内核,但是在win和Ubuntu双系统的前提下(可能)导致内核更新不成功,我安装成功的内核是5.13.39.
  • 内核更新不成功的原因是自己在安装ubuntu系统时没有手动分区,直接清空磁盘安装,所以安装系统时还是手动分区
  • 关闭bios安全启动,并设置ubuntu的启动引导为第一引导
  • navi6800xt(gfx1030)显卡安装5.0及以上
  • 安装后重启

ROCm安装

此版本为5.1.0

sudo apt update && sudo apt dist-upgrade
sudo apt-get install wget gnupg2 
sudo usermod -a -G video $LOGNAME
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
sudo wget https://repo.radeon.com/amdgpu-install/22.10/ubuntu/focal/amdgpu-install_22.10.50100-1_all.deb
sudo apt-get install ./amdgpu-install_22.10.50100-1_all.deb 
sudo amdgpu-install --usecase=dkms
amdgpu-install -y --usecase=rocm

配置环境和权限

sudo usermod -a -G video $LOGNAME 

sudo usermod -a -G render $LOGNAME

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

echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin' | sudo tee -a /etc/profile.d/rocm.sh

docker安装

下载Pytorch和TersonFlow镜像

sudo docker pull rocm/pytorch:latest

sudo docker pull rocm/tensorflow:latest

启用Pytorch和TensorFlow容器

sudo docker run -it -v $HOME:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video --name pytorch rocm/pytorch:latest

sudo docker run -it -v $HOME:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video rocm/tensorflow:latest

这里可以把--rm删除,保存容器,以后直接使用docker start pytorch启动容器,再用docker attach pytorch进入容器,进入之后直接运行包含调用cuda的代码就可以。

核实

# 显示gpu信息
rocm-smi
# 两项都显示gpu信息
/opt/rocm/bin/rocminfo
/opt/rocm/opencl/bin/clinfo

或者直接新建一个新的环境,根据下载的torch版本决定,下载安装至本地的python环境。

import torch
torch.cuda.is_available()
# output = True 即可以调用gpu

此方法目前只支持rocm4.5(应该),在文章最开始提供的torch下载页面,进去搜索rocm,可以看到支持的版本
其他版本目前还不行,需要build自己显卡的pytorch版本,我尝试了几次编译失败,就直接用docker容器了,安装后虽然显示cuda.is_available()True,但是运行训练会报HIP编译错误

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年4月6日
下一篇 2022年4月6日

相关推荐