AMD 的显卡才需要安装TensorFlow-rocm 英伟达的不需要看本篇博客咯。
首先我们先安装OpenBLAS, OpenBLAS的作用是AMD CPU的numpy计算加速器 和mkl是因特尔的numpy计算加速器的作用一样,所以英特尔CPU可以安装mkl
# 下载
sudo apt install git
git clone https://github.com/xianyi/OpenBLAS.git
# 安装
cd OpenBLAS/
sudo make TARGET=NEHALEM
sudo make PREFIX=/opt/OpenBLAS install
# 测试
vim main.c
内容如下
#include <cblas.h>
#include <stdio.h>
void main() {
int i = 0;
double A[6] = {1.0,2.0,1.0,-3.0,4.0,-1.0};
double B[6] = {1.0,2.0,1.0,-3.0,4.0,-1.0};
double C[9] = {.5,.5,.5,.5,.5,.5,.5,.5,.5};
int M = 3; // row of A and C
int N = 3; // col of B and C
int K = 2; // col of A and row of B
double alpha = 1.0;
double beta = 0.0;
cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, M, N, K, alpha, A, K, B, N, beta, C, N);
for (i = 0; i < 9; i++) {
printf("%lf ", C[i]);
}
printf("\n");
}
之后执行编译和运行
gcc main.c -o main -I /opt/OpenBLAS/include/ -L /opt/OpenBLAS/lib/ -lopenblas -lpthread
./main
# 当报错找不到libopenblas.a时 执行以下命令 =_+...
sudo cp /opt/OpenBLAS/lib/libopenblas.* /usr/lib/
./main
# 完成安装!
之后我们下载安装AMDGPU驱动
驱动安装页
https://www.amd.com/zh-hans/support/kb/release-notes/rn-amdgpu-unified-linux-20-20
# 安装GPU驱动
tar -Jxf amdgpu-pro-20.20-1098277-ubuntu-20.04.tar.xz
cd amdgpu-pro-20.20-1098277-ubuntu-20.04/
./amdgpu-install
# 驱动安装完成后测试
/opt/rocm/bin/rocminfo
/opt/rocm/opencl/bin/clinfo
# 若仅有一个成功识别显卡,仍可以尝试使用tensorflow-rocm。
# 安装apt的rocm的key和包列表
sudo apt update
sudo apt dist-upgrade
sudo apt install libnuma-dev
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
# 正式安装rocm-dkms
sudo apt update
sudo apt install rocm-dkms
当出现以下错误时不要惊慌,不用管它。
Loading new amdgpu-4.0-23 DKMS files...
Building for 5.8.0-45-generic
Building for architecture x86_64
Building initial module for 5.8.0-45-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/rock-dkms.0.crash'
Error! Bad return status for module build on kernel: 5.8.0-45-generic (x86_64)
Consult /var/lib/dkms/amdgpu/4.0-23/build/make.log for more information.
dpkg: 处理软件包 rock-dkms (--configure)时出错:
已安装 rock-dkms 软件包 post-installation 脚本 子进程返回错误状态 10
dpkg: 依赖关系问题使得 rocm-dkms 的配置工作不能继续:
rocm-dkms 依赖于 rock-dkms;然而:
软件包 rock-dkms 尚未配置。
dpkg: 处理软件包 rocm-dkms (--configure)时出错:
依赖关系问题 - 仍未被配置
因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。
在处理时有错误发生:
rock-dkms
rocm-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)
最后还需要安装一个包
sudo apt install rccl
# 查看rocm版本
apt show rocm-libs -a
apt show rocm-dkms -a
# 最后安装TensorFlow-rocm
pip3 install tensorflow-rocm -i https://pypi.tuna.tsinghua.edu.cn/simple
# 测试
python3
import tensorflow
# 不报错则安装成功!