GPU 支持

为了实现 TensorFlow GPU 支持,需要各种驱动程序和库。为了简化安装并避免库冲突,建议您使用支持 GPU 的 TensorFlow Docker 映像(仅限 Linux)。此设置方式只需要 NVIDIA® GPU 驱动程序

这些安装说明适用于最新版 TensorFlow。如需了解可用于旧版 TensorFlow 的 CUDA® 和 cuDNN 版本,请参阅经过测试的构建配置

pip 软件包

您可以参阅 pip 安装指南,了解可用的软件包、系统要求和说明。TensorFlow pip 软件包对采用 CUDA® 的显卡提供 GPU 支持:

pip install tensorflow

本指南将介绍最新稳定版 TensorFlow 的 GPU 支持和安装步骤。

旧版 TensorFlow

对于 1.15 及更早版本,CPU 和 GPU 软件包是分开的:

pip install tensorflow==1.15      # CPU
pip install tensorflow-gpu==1.15  # GPU

硬件要求

支持以下带有 GPU 的设备:

  • CUDA® 架构为 3.5、5.0、6.0、7.0、7.5、8.0 或更高的 NVIDIA® GPU 卡。请参阅支持 CUDA® 的 GPU 卡列表。
  • 如果 GPU 采用的 CUDA® 架构不受支持,或为了避免从 PTX 进行 JIT 编译,亦或是为了使用不同版本的 NVIDIA® 库,请参阅在 Linux 下从源代码编译指南。
  • 软件包不包含 PTX 代码,但最新支持的 CUDA® 架构除外;因此,如果设置了 CUDA_FORCE_PTX_JIT=1,TensorFlow 将无法在旧款 GPU 上加载。(有关详细信息,请参阅应用兼容性。)

软件要求

必须在系统中安装以下 NVIDIA® 软件:

Linux 设置

若要在 Ubuntu 上安装所需的 NVIDIA 软件,最简单的方法是使用下面的 apt 指令。但是,如果从源代码构建 TensorFlow,请手动安装上述软件要求中列出的软件,并考虑以 -devel TensorFlow Docker 映像作为基础。

安装 CUDA® 工具包附带的 CUPTI,并将其安装目录附加到 $LD_LIBRARY_PATH 环境变量中:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64

使用 apt 安装 CUDA

本部分将介绍如何在 Ubuntu 16.04 和 18.04 上安装 CUDA® 11(TensorFlow 2.4.0 及更高版本)。这些说明可能适用于其他 Debian 系发行版。

Ubuntu 18.04 (CUDA 11.0)

# Add NVIDIA package repositories
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update

wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb

sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update

wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt-get update

# Install development and runtime libraries (~4GB)
sudo apt-get install --no-install-recommends \
    cuda-11-0 \
    libcudnn8=8.0.4.30-1+cuda11.0  \
    libcudnn8-dev=8.0.4.30-1+cuda11.0

# Reboot. Check that GPUs are visible using the command: nvidia-smi

# Install TensorRT. Requires that libcudnn8 is installed above.
sudo apt-get install -y --no-install-recommends libnvinfer7=7.1.3-1+cuda11.0 \
    libnvinfer-dev=7.1.3-1+cuda11.0 \
    libnvinfer-plugin7=7.1.3-1+cuda11.0

Ubuntu 16.04 (CUDA 11.0)

# Add NVIDIA package repositories
# Add HTTPS support for apt-key
sudo apt-get install gnupg-curl
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin
sudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/ /"
sudo apt-get update
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
sudo apt-get update
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt-get update

# Install development and runtime libraries (~4GB)
sudo apt-get install --no-install-recommends \
    cuda-11-0 \
    libcudnn8=8.0.4.30-1+cuda11.0  \
    libcudnn8-dev=8.0.4.30-1+cuda11.0


# Reboot. Check that GPUs are visible using the command: nvidia-smi

# Install TensorRT. Requires that libcudnn7 is installed above.
sudo apt-get install -y --no-install-recommends \
    libnvinfer7=7.1.3-1+cuda11.0 \
    libnvinfer-dev=7.1.3-1+cuda11.0 \
    libnvinfer-plugin7=7.1.3-1+cuda11.0 \
    libnvinfer-plugin-dev=7.1.3-1+cuda11.0

Windows 设置

请参阅上面列出的硬件要求软件要求,并阅读适用于 Windows 的 CUDA® 安装指南

确保安装的 NVIDIA 软件包与上面列出的版本一致。特别是,如果没有 cuDNN64_8.dll 文件,TensorFlow 将无法加载。如需使用其他版本,请参阅在 Windows 下从源代码构建指南。

将 CUDA®、CUPTI 和 cuDNN 安装目录添加到 %PATH% 环境变量中。例如,如果 CUDA® 工具包安装到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0,并且 cuDNN 安装到 C:\tools\cuda,请更新 %PATH% 以匹配路径:

SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\CUPTI\lib64;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include;%PATH%
SET PATH=C:\tools\cuda\bin;%PATH%