说道深度学习(DeepLearning)GPU加速卡老鸟们一定会推荐Nvidia显卡,不得不说nvidia在机器学习方面做的确实很出色。笔者是个菜鸟在攒机的时候从未想过要学习DeepLearning。鬼使神差的选了AMD显卡,只是觉得驱动程序比较开放。另外一个原因就是对黑苹果支持不错,可能是我的PC与Mac OS无缘,没能用上苹果系统。要想让Radeon支持深度学习就需要安装ROCm Platform(Radeon Open Compute)。官方网址https://rocm.github.io, 闲话少说下面给入坑的同学们分享Radeon显卡深度学习环境搭建。
一、环境准备
首先要先确认你的显卡是否支持,下面是官方提供的显卡列表:
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
没找到自己显卡型号的同学不要着急rocm官方网站还提供了更详细的硬件支持列表 https://rocm.github.io/hardware.html
二、环境搭建
1、ROCm安装
更新你的操作系统
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
设置权限
查看自己用户的权限看看有没有video。
groups
没有就添加一个。
sudo usermod -a -G video $LOGNAME
你如果想让新增用户也支持ROCm就修改/etc/adduser.conf文件。
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf
测试ROCm安装情况
/opt/rocm/bin/rocminfo
/opt/rocm/opencl/bin/x86_64/clinfo
添加PATH环境
让系统可以找到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
2、Tensorflow深度学习框架安装
安装Tensorflow运行所需要的软件。记得一定要安装rccl,官方文档里没有提到否则TF会报librccl.so没有找到。
sudo apt update
sudo apt install rocm-lib smiopen-hip cxlactivitylogger rccl
安装Radeon GPU版本的Tensorflow
sudo apt install wget python3-pip
pip3 install --user tensorflow-rocm
三、测试
下面写一个hellowold.py测试一下我们的成果吧。
import tensorflow as tf
c = tf.constant('Hello, World!')
with tf.Session() as sess:
print(sess.run(c))
运行
python3 hellowold.py
如果最后看到下面的内容那么恭喜你环境搭好了。
Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 3540 MB memory) -> physical GPU (device: 0, name: Baffin [Radeon RX 550 640SP / RX 560/560X], pci bus id: 0000:03:00.0)
b'Hello, World!'
总结
学习DeepLearning的同学最好还是最好买Nvidia显卡。Nvidia在GPU计算、神经网络方面还是很优秀的。虽然ROCm使Radeon GPU支持了Tensorflow深度学习框架,但向PyTorch等其他小众的深度学习框架支持的就不够完善。像PyTorch官方只提供了docker环境。