TensorFlow の GPU サポートには、各種ドライバやライブラリが必要です。インストールを簡略化し、ライブラリの競合を避けるため、GPU サポートを含む TensorFlow の Docker イメージ(Linux 用のみ)を使用することをおすすめします。その場合セットアップに必要なのは NVIDIA® GPU ドライバだけです。
下記のインストール手順は TensorFlow の最新リリースを対象としています。TensorFlow の以前のリリースで使用する CUDA や cuDNN のバージョンについては、テスト済みのビルド構成をご確認ください。
pip パッケージ
pip インストールに関する利用可能なパッケージ、システム要件、および手順については pip インストールのガイドをご覧ください。TensorFlow の pip
パッケージには、CUDA® 対応カードに対する GPU サポートが含まれています。
pip install tensorflow
このガイドでは、最新の stable TensorFlow リリースの GPU サポートとインストール手順について説明します。
旧バージョンの TensorFlow
1.15 以前のリリースでは、CPU パッケージと GPU パッケージは別個のものです。
pip install tensorflow==1.15 # CPU
pip install tensorflow-gpu==1.15 # GPU
ハードウェア要件
GPU が使用できる以下のデバイスに対応しています。
- NVIDIA® GPU カード(CUDA® アーキテクチャ 3.5、5.0、6.0、7.0、7.5、8.0 以降)。CUDA® 対応の GPU カードの一覧をご確認ください。
- サポートされていない CUDA® アーキテクチャの GPU、または PTX からの JIT コンパイルを避ける場合や、バージョンが異なる NVIDIA® ライブラリを使用する場合は、Linux でのソースからのビルドに関するガイドをご覧ください。
- パッケージには、サポートされている最新の CUDA® アーキテクチャ以外の PTX コードは含まれていないため、
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 以降)
- CUPTI は CUDA® ツールキットに同梱されています。
- cuDNN SDK 8.1.0 cuDNN バージョン。
- (省略可)TensorRT 6.0 は一部のモデル上での推論のレイテンシとスループットを改善します。
Linux でのセットアップ
下記の apt
に関する手順は、必須の NVIDIA ソフトウェアを Ubuntu 上にインストールする最も簡単な方法です。ただし、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%