ubuntu20.04安装rocm教程,AMD深度学习,6800xt配置pytorch、CUDA(已更新)本地安装torch

官方文档

对应torch下载地址

ROCm安装配置踩坑

  • 遇到的问题
  • 安装ubuntu系统更新内核,但是在win和Ubuntu双系统的前提下(可能)导致内核更新不成功,我安装成功的内核是5.13.39.
  • 内核更新不成功的原因是自己在安装ubuntu系统时没有手动分区,直接清空磁盘安装,所以安装系统时还是手动分区
  • 关闭bios安全启动,并设置ubuntu的启动引导为第一引导
  • navi6800xt(gfx1030)显卡安装5.0及以上
  • rocm5.0以上是支持了navi显卡,如果是上一代的卡,可以装4.5这个版本系列,因为torch官网就有编译好的pytorch版本,可以直接安装到本地环境而不需要docker镜像
  • 安装后重启
  • (更新1)再加一条,安全启动在教程最开始就要禁用掉,我记得是安装rocm驱动时会有一个许可协议的接受,就是关于第三方程序调用硬件的声明,如果你没有禁用安全启动,他会让你设定一个密码,然后在重启时要在bios力输入密码,怎么操作我也忘了,总是就是很麻烦。
  • (更新2)torch支持ROCM的版本更新到了5.1,所以可以本地安装了,对docker不熟悉的可以使用新的方法,以下示例安装5.0版本
    1. 首先下载自己想要安装自定义python版本的对应的torch版本 ,下载到本地,可能会慢,具体方法自己查
    2. 然后,本地新建环境,这里顺便把numpy也装上,不然后面使用会缺少包。
    3. 安装本地的包
    4. 最后验证,左侧的rocm5.0显示安装成功,torch张量也能创建存储在gpu上

    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,教程里推荐使用阿里云的分支

           安装后下载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源码进行编译的方法,我反正失败了,如果有人能编译成功也发我一下方法哈哈哈。

    来源:reven#1118

    物联沃分享整理
    物联沃-IOTWORD物联网 » ubuntu20.04安装rocm教程,AMD深度学习,6800xt配置pytorch、CUDA(已更新)本地安装torch

    发表评论