利用ROCm在3A平台进行深度学习
零、平台介绍
0、软件平台
操作系统:Ubuntu20.04
Linux Kernel:5.8.4-050804-generic
NVCC(ROCm):rocm-dev3.7.0/Ubuntu 16.04 3.7.0-20 amd64
Docker:docker-ce/focal,now 5:19.03.12~3-0~ubuntu-focal amd64
1、硬件平台
CPU:Ryzen 3700X
GPU:Radeon VII
主板:ROG STRIX B450-I
内存:3200MHz 2*16GB
2、ROCm介绍
ROCm是AMD显卡的开放计算平台,提供了接近Cuda的API和转换工具。目前支持Pytorch和TensorFlow。
一、平台搭建
0、安装ROCm
(1)更新到最新版本内核
前往 https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8.4/ 下载内核文件 :
linux-headers-5.8.4-050804-generic_5.8.4-050804.202008260637_amd64.deb
inux-headers-5.8.4-050804_5.8.4-050804.202008260637_all.deb
linux-image-unsigned-5.8.4-050804-generic_5.8.4-050804.202008260637_amd64.deb
linux-modules-5.8.4-050804-generic_5.8.4-050804.202008260637_amd64.deb
切换到文件目录,执行sudo apt install ./linux-*-5.8.4*.deb。
(2)安装ROCm
添加软件源
wget -q -O - http://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list
安装软件
sudo apt install rocm-dev
echo 'SUBSYSTEM=="kfd", KERNEL=="kfd", TAG+="uaccess", GROUP="video"' | sudo tee /etc/udev/rules.d/70-kfd.rules
配置环境和权限
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
(3)安装docker
为了加速安装,教程使用阿里镜像站
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt-get install docker-ce
安装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 rocm/pytorch:latest
sudo docker run -it -v $HOME:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video rocm/tensorflow:latest