为了实现 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® 软件:
- NVIDIA® GPU 驱动程序 - CUDA® 11.2 要求 450.80.02 或更高版本。
- CUDA® 工具包:TensorFlow 支持 CUDA® 11.2(TensorFlow 2.5.0 及更高版本)
- CUDA® 工具包附带的 CUPTI。
- cuDNN SDK 8.1.0 cuDNN 版本。
- (可选)TensorRT 6.0,可缩短用某些模型进行推断的延迟时间并提高吞吐量。
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 repositorieswget 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-keysudo 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%