ubuntu20.04安装rocm教程,AMD深度学习,6800xt配置pytorch、CUDA

官方文档

对应torch下载地址

ROCm安装配置踩坑

  • 遇到的问题
    • 安装ubuntu系统更新内核,但是在win和Ubuntu双系统的前提下(可能)导致内核更新不成功,我安装成功的内核是5.13.39.
    • 内核更新不成功的原因是自己在安装ubuntu系统时没有手动分区,直接清空磁盘安装,所以安装系统时还是手动分区
    • 关闭bios安全启动,并设置ubuntu的启动引导为第一引导
    • navi6800xt(gfx1030)显卡安装5.0及以上
    • rocm5.0以上是支持了navi显卡,如果是上一代的卡,可以装4.5这个版本系列,因为torch官网就有编译好的pytorch版本,可以直接安装到本地环境而不需要docker镜像
    • 安装后重启
    • (更新)再加一条,安全启动在教程最开始就要禁用掉,我记得是安装rocm驱动时会有一个接受许可协议的接受,就是关于gpu调用权限的好像,如果你没有禁用安全启动,他会让你设定一个密码,然后bios怎么操作我也忘了,总是就是很麻烦。

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

验证

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

接下来就是如何使用rocm进行显卡运算加速了,有两种方式,推荐方式1

方式一,docker容器运行

       首先按以下教程安装docker,教程里推荐使用阿里云的分支

docker安装

       安装后下载pytorch或者tensorflow的镜像,这两个镜像里面都装好了torch或者tf,所以进去就可以直接用,好像是rocm5.0以上才支持navi显卡,所以推荐navi显卡用这个方法,因为torch官网编译好的版本最新支持到rocm4.5.2,所以你的显卡要是支持,就可以区torch官网选择你的版本,他会给你pip命令,这样你就可以安装到本地环境而不需要docker容器的远程环境。
       安装完docker就可以下载镜像了,需要哪个下哪个,这两个镜像一个(解压后)27g,一个22g,docker默认安装到根目录下的相关文件夹中,所以安装ubuntu时需要指定/的大小要大一点

下载Pytorch和TersonFlow镜像

sudo docker pull rocm/pytorch:latest

sudo docker pull rocm/tensorflow:latest

       下载完之后可以使用 docker images查看已下载的镜像,第四个就是

创建Pytorch或者TensorFlow容器

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

# 如果下载的是pytorch的镜像就用这个命令
sudo docker run -it -v $HOME:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video --name pytorch rocm/pytorch:latest
#如果是tensorflow就用这个命令
sudo docker run -it -v $HOME:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video rocm/tensorflow:latest

       如果是会用docker的到这里教程基本就结束了。如果不会用docker接着往下看。
       上述命令运行完会直接进入创建好的容器,可以按ctrl+p+q先暂时退出,打开vscode,vscode安装的话就自己百度了,在插件市场搜索remote-containers安装

image-20220411182155093

       安装完之后点vscode左下角的

       选择Attach to Running Container


       之后会弹出来一个新窗口,这样就可以在ide上开发了。注意:vscode连接container后默认不启用一部分插件,所以你需要自己安装python等的支持插件
       验证没有问题

       运行rocm的官方示例

       还有一个方法是不用vscode,可以进入容器内配置jupyter notebook 远程连接,方法自行百度,在映射了路径的前提下,容器内开启jupyter服务,可以在ubuntu本地浏览器运行jypyter笔记本,并且实现文件的同步。

方式二

或者直接新建一个新的环境,根据文章开始提供的下载的torch版本决定,下载安装至本地的python环境。此方法适用于不熟悉docker且rocm版本是4.5.2以下的

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

此方法目前只支持rocm4.5(应该),在文章最开始提供的torch下载页面,进去搜索rocm,可以看到支持的版本
其他版本目前还不太行,需要build自己显卡的pytorch版本,我尝试了几次编译失败,就直接用docker容器了,安装后虽然显示cuda.is_available()True,但是运行训练会报HIP编译错误,如果你是这方面的大佬的话,可以去官方文档的深度学习板块有git官方的torch源码进行编译的方法,我反正失败了,如果有人能编译成功也发我一下方法哈哈哈。

猜你喜欢

转载自blog.csdn.net/qq_51403540/article/details/123951460