
鉴于很多小伙伴们的电脑配置的是AMD显卡,本文将介绍如何使用TensorFlow以及Keras在AMD显卡上训练深度学习模型。
AMD目前正在开发名为ROCm的新高性能计算平台,其目标是创建一个能够与Nvidia(使用CUDA)和AMD GPU进行数据交互的通用GPU计算开源环境。

20190814110428.png
本文将在ROCm内核之上使用Docker运行Keras(后端Tensorflow v1.12.0)来训练深度学习模型,分如下几个部分展开:ROCm平台安装;TensorFlow Docker安装。
ROCm平台安装
软硬件要求
目前的ROCm (v2.6)只支持Linux系统,支持的操作系统如下:
- Ubuntu 16.04.x and 18.04.1 and 18.04.2 (Version 16.04.3 and newer or kernels 4.13-4.15)
- CentOS 7.4, 7.5, and 7.6 (Using devtoolset-7 runtime support)
- RHEL 7.4, 7.5, and 7.6 (Using devtoolset-7 runtime support)
同时对GPU和CPU的支持,也有一定的限制,如下所示:
GPU列表:
- GFX8 GPUs
- “Fiji” chips, such as on the AMD Radeon R9 Fury X and Radeon Instinct MI8
- “Polaris 10” chips, such as on the AMD Radeon RX 580 and Radeon Instinct MI6
- “Polaris 11” chips, such as on the AMD Radeon RX 570 and Radeon Pro WX 4100
- “Polaris 12” chips, such as on the AMD Radeon RX 550 and Radeon RX 540
- GFX9 GPUs
- “Vega 10” chips, such as on the AMD Radeon RX Vega 64 and Radeon Instinct MI25
- “Vega 7nm” chips, such as on the Radeon Instinct MI50, Radeon Instinct MI60 or AMD Radeon VII
CPU列表:
- AMD Ryzen CPUs;
- The CPUs in AMD Ryzen APUs;
- AMD Ryzen Threadripper CPUs
- AMD EPYC CPUs;
- Intel Xeon E7 v3 or newer CPUs;
- Intel Xeon E5 v3 or newer CPUs;
- Intel Xeon E3 v3 or newer CPUs;
- Intel Core i7 v4, Core i5 v4, Core i3 v4 or newer CPUs (i.e. Haswell family or newer).
- Some Ivy Bridge-E systems
在本文中,测试的软硬件环境如下:
- 操作系统:OS: Ubuntu 18.04 LTS
- CPU: Intel Xeon E5–2630L
- 内存: 2 x 8 GB
- 主板: MSI X99A Krait Edition
- GPU: 2 x RX480 8GB + 1 x RX580 4GB
- 固态: Samsung 850 Evo (256 GB)
- 硬盘: WDC 1TB
ROCm安装
为了顺利安装,建议从新系统开始。
首先安装ROCm内核以及相关依赖:
CTRL+ALT+T打开终端,输入如下:
sudo apt update sudo apt dist-upgrade sudo apt install libnuma-dev sudo reboot
添加ROCm apt仓库:
wget -qO - http://repo.radeon.com/rocm/apt/debian/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
安装ROCm:
sudo apt update sudo apt install rocm-dkms
权限设置
ROCm官方文档建议建立video组来通过当前用户访问GPU资源,首先查看系统中存在的组:
groups
然后,添加当前用户进入video组:
sudo usermod -a -G video $LOGNAME
对于以后的新用户想默认加入video组,可以设置如下命令:
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf
然后重启系统:
reboot
安装测试
输入如下命令:
/opt/rocm/bin/rocminfo
输出结果应该如下所示:
===================== HSA System Attributes ===================== Runtime Version: 1.1 System Timestamp Freq.: 1000.000000MHz Sig. Max Wait Duration: 18446744073709551615 (number of timestamp) Machine Model: LARGE System Endianness: LITTLE ========== HSA Agents ========== ******* Agent 1 ******* Name: Genuine Intel(R) CPU @ 1.80GHz ......
最后添加ROCm可执行文件到系统路径:
echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64' | sudo tee -a /etc/profile.d/rocm.sh
到这一步,ROCm算是安装完成了,在终端输入rocm-smi可以查看硬件信息和运行状态。
Tensorflow Docker安装
最简单,可信的安装方法是使用AMD提供的Tensorflow镜像。
安装TensorFlow Docker
首先是Docker的安装,可以参考Docker官方文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/,如果要添加非root用户使用Docker,可参考:https://docs.docker.com/install/linux/linux-postinstall/。
接下来是拉取 ROCm Tensorflow 镜像:
docker pull rocm/tensorflow
镜像*载下**好之后,运行TensorFlow容器:
docker run -i -t \ --network=host \ --device=/dev/kfd \ --device=/dev/dri \ --group-add video \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ /bin/bash
进入Tensorflow-ROCm 虚拟系统后,进入Python,就可以通过import tensorflow查看是否安装成功。
~ python Python 3.7.3 (default, Mar 27 2019, 22:11:17) Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow >>>
这样基于AMD显卡的TensorFlow就算安装好了,各位还可以在此基础上安装jupyter等方便自己炼丹,可参考:https://towardsdatascience.com/train-neural-networks-using-amd-gpus-and-keras-37189c453878