2022年 11月 6日

python调用gpu amd_TensorFlow通过AMD GPU加速(ROCm/elementary OS 5.0)

elementary OS 5.0是基于Ubuntu 18.04制作,所以本流程也适用于Ubuntu 18.04。

ROCm升级1.91之后不需要安装AMD的GPU驱动程序,如果安装可能会出现问题。

安装elementary OS 5 之后的一些配置

安装软件更新管理器

sudo apt update

sudo apt install software-properties-common software-properties-gtk

运行软件更新管理器然后选择合适的镜像,我使用的是阿里云。

sudo software-properties-gtk

更新系统

sudo apt update

sudo apt upgrade

安装ROCm

添加ROCm库

wget -qO – http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add –

sudo sh -c ‘echo deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main > /etc/apt/sources.list.d/rocm.list’

安装必要的软件包

sudo apt update && sudo apt install -y \

build-essential \

clang \

clang-format \

clang-tidy \

cmake \

cmake-qt-gui \

ssh \

curl \

apt-utils \

pkg-config \

g++-multilib \

git \

libunwind-dev \

libfftw3-dev \

libelf-dev \

libncurses5-dev \

libpthread-stubs0-dev \

vim \

gfortran \

libboost-program-options-dev \

libssl-dev \

libboost-dev \

libboost-system-dev \

libboost-filesystem-dev \

rpm \

wget

安装ROCm驱动

sudo apt update && \

sudo apt install -y –allow-unauthenticated \

rocm-dkms rocm-dev rocm-libs \

rocm-device-libs \

hsa-ext-rocr-dev hsakmt-roct-dev hsa-rocr-dev \

rocm-opencl rocm-opencl-dev \

rocm-utils \

rocm-profiler cxlactivitylogger \

miopen-hip miopengemm

添加用户

sudo adduser $LOGNAME video

sudo reboot

安装miniconda

在使用python时我们很多时候会用到conda,但是conda会改变python的一些配置。所以我们先安装conda,这样就不会出现在使用tensorflow时需要使用/usr/bin/python3这样的命令。

下载地址(64位):https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

cd 下载目录

chmod +x ./Miniconda3-latest-Linux-x86_64.sh

./Miniconda3-latest-Linux-x86_64.sh

安装之后我们发现conda的python是3.7,而ROCm版的tensorflow支持3.5和3.6,所以我们需要将python降为3.6。

conda install python=3.6

安装python相关的软件包

sudo apt update && sudo apt install -y \

python3-numpy \

python3-dev \

python3-wheel \

python3-mock \

python3-future \

python3-pip \

python3-yaml \

python3-setuptools

安装TensorFlow

pip3 install –user tensorflow-rocm