TensorFlow GPU安装教程(图示版)

在使用 TensorFlow-GPU 之前,要先进行安装配置,本节教程就来介绍如何安装配置 GPU 环境。

1.安装 GPU 版 TensorFlow

在“TensorFlow安装教程”一节中我们已经介绍了如何安装 CPU 版 TensorFlow,为了使用 GPU 来加速计算,我们必须安装 GPU 版 TensorFlow。TensorFlow 官网对于 Docker 的安装方法有较为详细的介绍,感兴趣的读者可以参考官网的教程。本节里我们将介绍如何自己手工来安装和配置相关环境。

首先使用 pip 命令:
apip install tensorflow-gpu

安装完成后,我们可以查看一下当前可用的 GPU:
from TensorFlow.python.client import device_lib
def get_available_gpus():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']
print(get available gpus())

由于作者的机器上有两块 GPU,所以输出两块 GPU 的编号:"['/device: GPU: 0',  '/device: GPU: 1']"。

2.安装显卡驱动

根据你的显卡型号到官网下载对应驱动。图 1 所示的是作者机器 Tesla P100 的显卡对应的驱动程序。这里一定要注意选择正确的版本,要和你的显卡版本、操作系统版本及想要安装的 CUDA 版本一一对应(关于 TensorFlow 与 CUDA 的版本对应关系,在后面 CUDA 的安装部分有说明)。
NVIDA 驱动下载列表
图 1:NVIDA 驱动下载列表

在图 1 所示的界面中单击“搜索”按钮,弹出如图 2 所示的界面,单击“下载”按钮即可。
NVIDA 驱动下载提示
图 2:NVIDA 驱动下载提示:
 
安装完成之后可以使用“nvidia-smi”命令查看显卡,图 3 所示的是作者机器上的两块显卡的信息。
作者机器上的两块显卡的信息
图 3:作者机器上的两块显卡的信息

3.安装CUDA

在安装 CUDA 之前,我们一定要先搞清楚 TensorFlow 各个版本与 CUDA 版本的对应关系。在 TensorFlow 官网有说明,其中 Linux 系统环境下 TensorFlow GPU 与 CUDA 的版本对应关系如图 4 所示。
TensorFlow 与CUDA 的版本对应关系
图 4:TensorFlow 与CUDA 的版本对应关系

TensorFlow2.0GPU 依赖的 NVIDA 软件包的官网说明,如图 5 所示。
TensorFlow2.0GPU 依赖的NVIDA 软件包
图 5:TensorFlow2.0GPU 依赖的NVIDA 软件包

1) 下载CUDA

首先到 NVIDIA 官网下载 CUDA。作者在撰写本节内容时,CUDA 的最新版本是 10.1 版本,这里提醒读者,一定要按照 TensorFlow 官网的说明下载 10.0 版本,否则 TensorFlow 即使安装好后也是不能正常运行的。后续新的版本可能会支持更高版本的 CUDA,读者请根据实际情况下载。

如图 6 所示,选择对应系统环境的 CUDA 版本。
选择对应的CUDA 版本
图 6:选择对应的 CUDA 版本

2) 安装CUDA

CUDA 下载页面有安装指引,如图 7 所示。
CUDA 的安装步骤
图 7:CUDA 的安装步骤

1) 第一步:执行安装命令:
sudo dpkg -i cuda-repo-ubuntul604-10-0-local-10.0.130-410.48_1.0-1_amd64. deb

2) 第二步:添加 key:
sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub

3) 第三步:依次执行:
sudo apt-get update
sudo apt-get install cuda-10.0

注意不要使用“sudo apt-get install cuda”,这样默认安装的是最新版,所以一定要指定版本。安装过程中如果有报“libkmod: ERROR”相关错误,那么安装完成后重启一下即可。

安装完成后,在“/usr/local”目录下会生成“cuda”和“cuda-10.0”两个文件夹,如图 8 所示,我们可以使用命令“cat /usr/local/cuda/version.txt”查看 CUDA 版本。
查看CUDA 版本
图 8:查看 CUDA 版本

4) 第四步:设置环境变量。

打开“~/.bashrc”文件,在文件的最后添加如下内容:
export PATH=/usr/local/cuda-10.0/bin${PATH:+:$PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY PATH}}
在终端执行命令“source ~/.bashrc”让环境变量生效。

5) 第五步:验证安装是否成功。
  1. 进入目录“/usr/local/cuda-10.0/samples/1_Utilities/deviceQuery”中打开终端。
  2. 终端下执行编译命令“sudo make”。
  3. 然后执行命令“./deviceQuery”,可以看到两块 GPU 的信息。

如图 9 所示,检测到作者的两块显卡,图 9 中所示的是其中一块显卡的信息。到这里 CUDA 已经安装完成了。
显卡的信息
图 9:显卡的信息

4.安装cuDNN

1) 下载

这里一定要下载与 CUDA10.0 对应的版本,如图 10 所示。下载 cuDNN 需要登录 NVIDIA 账号,没有的话,可以按照提示创建一个账号。
cuDNN 与CUDA 的版本对应关系
图 10:cuDNN 与 CUDA 的版本对应关系

选择好 cuDNN 版本后,单击下载“cuDNN Library for Linux”,如图 11 所示。
cuDNN 下载列表
图 11:cuDNN 下载列表

2) 安装

第一步:使用“tar”命令解压文件。
tar zxvf cudnn-10.0-linux-x64-v7.6.5.32.tgz

第二步:拷贝文件,并修改文件权限。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

到这里 TensorFlow2.0 的 GPU 版就安装配置完成了。