ROCm編譯安裝PyTorch和TensorFlow
安裝環(huán)境
Ubuntu20.04 未更新版,下載鏈接 http://old-releases.ubuntu.com/releases/20.04.0/。
ROCm安裝
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/ROCprofiler/bin:/opt/ROCm/opencl/bin' | sudo tee -a /etc/profile.d/ROCm.sh
echo 'SUBSYSTEM=="kfd", KERNEL=="kfd", TAG+="uaccess", GROUP="video"' | sudo tee /etc/udev/rules.d/70-kfd.rules
wget -q -O - https://repo.radeon.com/ROCm/ROCm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/ROCm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/ROCm.list
sudo apt install ROCm-dkms ROCm-libs miopen-hip miopengemm rccl
//miopenkernels-gfx906-60kdb ,Radeon VII MIOpen的性能配置文件,根據(jù)自己的顯卡型號安裝
sudo usermod -a -G video $LOGNAME
sudo usermod -a -G render $LOGNAME
sudo reboot
sudo apt install libopencv-dev libopenblas-dev git cmake
安裝conda ,Miniconda或Anaconda的PY3.8版本
conda create -n DL python=3.8 nomkl numpy scipy scikit-learn numexpr pyyaml setuptools cffi typing_extensions future six requests dataclasses
pip install keras_prepROCessing keras_applications
//有私貨,numpy依賴的MKL轉為OpenBLAS等組件,如果不需要則可以不安裝nomkl。
clone源代碼
git clone -b v1.7.1 --depth=1 --recursive https://github.com/pytorch/pytorch Torch
git clone -b v0.8.2 --depth=1 --recursive https://github.com/pytorch/vision
git clone -b v0.3.1 --depth=1 --recursive https://github.com/ROCmSoftwarePlatform/apex
//Apex為ROCm的混合精度計算支持
git clone -b r2.3-ROCm-enhanced --depth=1 https://github.com/ROCmSoftwarePlatform/tensorflow-upstream.git TensorFlow
PyToch安裝
cd Torch
conda activate DL
python tools/amd_build/build_amd.py
USE_ROCM=1 USE_OPENCV=1 python setup.py install
cd ../vision
python setup.py install
cd ../apex
python setup.py install
TensorFlow安裝
wget -q -O - https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update && sudo apt install bazel-3.1.0 openjdk-14-jdk && sudo ln -s /usr/bin/bazel-3.1.0 /usr/bin/bazel
修改build_ROCm_python3,
13行 ROCM_INSTALL_DIR=/opt/ROCm-4.0.0
31行 yes "" | ROCM_PATH=$ROCM_INSTALL_DIR TF_NEED_ROCM=1 ./configure
./build_ROCm_python3