在 Ubuntu 18.04 上安装 TensorFlow GPU 的过程中遇到几个问题,在此将过程记录下来。
前言
本文写于 2018 年 7 月,此时的 TensorFlow 最新版本为 1.9,此版本支持 CUDA Toolkit 9.0 和 cuDNN SDK v7。同时由于本人所安装的 Ubuntu 为英文版本,中文语言版本用户请寻找对应的程序位置。
NVIDIA 显卡驱动
首先打开 Software & Updates
中的 Additional Drivers
选项卡,将显卡驱动更改为 Using NVIDIA driver metapackage from nvidia-driver-390(proprietary, tested)

当前最新版本为 390,版本可能不同,请选择对应的版本。
CUDA 9.0
由于 TensorFlow 二进制包仅支持 CUDA 9.0,因此便选择 CUDA 9.0 进行安装。
下载地址:https://developer.nvidia.com/cuda-90-download-archive
选择 Linux - x86_64 - Ubuntu - 17.04 - runfile(local) 进行安装。
安装依赖
下载完成后安装依赖:
1 | $ sudo apt install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev |
由于 CUDA 9.0 不支持 GCC 6 以后的版本,本文这里将 GCC 降级为 6。
1 | $ sudo apt install gcc-6 g++-6 |
运行安装脚本
1 | $ sudo chmod a+x cuda_9.0.176_384.81_linux.run # 给予运行权限 |
将 cuda_9.0.176_384.81_linux.run
修改为对应的文件名(一般来说是相同的)
设置环境变量
将下列环境变量添加到你的系统中,如 ~/.bashrc
,并运行 source ~/.bashrc
1 | # CUDA PATH |
验证 CUDA 9.0 安装
首先运行 nvcc -V
查看 CUDA 版本,运行结果应如下所示:
1 | $ nvcc -V |
之后进入 ~/NVIDIA_CUDA-9.2_Samples
下运行 make
命令进行编译。编译完成后进入 ~/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release
运行 ./deviceQuery
命令。运行结果应如下所示:
1 | $ ./deviceQuery |
以及 ./bandwidthTest
命令:
1 | $ ./bandwidthTest |
cuDNN v7
前往 https://developer.nvidia.com/rdp/cudnn-archive 下载对应的 cuDNN,点击 “Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0”,下载以下三个链接。
- cuDNN v7.0.5 Runtime Library for Ubuntu16.04 (Deb)
- cuDNN v7.0.5 Developer Library for Ubuntu16.04 (Deb)
- cuDNN v7.0.5 Code Samples and User Guide for Ubuntu16.04 (Deb)
下载完成后进行安装:
1 | $ sudo dpkg -i libcudnn7_7.0.5.11-1+cuda9.0_amd64.deb |
安装 TensorFlow
安装 libcupti-dev
依赖
1 | sudo apt-get install libcupti-dev |
并将以下环境变量加入系统:
1 | export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}/usr/local/cuda/extras/CUPTI/lib64 |
(可选)固定 cuDNN 版本:
运行以下命令固定 cuDNN 版本
1 | $ sudo apt-mark hold libcudnn7 libcudnn7-dev libcudnn7-doc |
取消固定:
1 | $ sudo apt-mark unhold libcudnn7 libcudnn7-dev libcudnn7-doc |
TensorFlow GPU
运行以下命令:
1 | $ pip3 install tensorflow-gpu |
在 Python 中验证安装:
1 | import tensorflow as tf |
运行结果应如下所示:
1 | /home/ubuntu/.pyenv/versions/3.6.6/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88 |