NVIDIA / tensorflow
An Open Source Machine Learning Framework for Everyone
README
[!IMPORTANT]
As of 07/31/2025 this project has been deprecated. nvidia-tensorflow is not maintained anymore. NVIDIA recommends that new projects adopt JAX Toolbox.
Documentation |
|---|
NVIDIA has created this project to support newer hardware and improved libraries
to NVIDIA GPU users who are using TensorFlow 1.x. With release of TensorFlow 2.0,
Google announced that new major releases will not be provided on the TF 1.x branch
after the release of TF 1.15 on October 14 2019. NVIDIA is working with Google and
the community to improve TensorFlow 2.x by adding support for new hardware and
libraries. However, a significant number of NVIDIA GPU users are still using
TensorFlow 1.x in their software ecosystem. This release will maintain API
compatibility with upstream TensorFlow 1.15 release. This project will be henceforth
referred to as nvidia-tensorflow.
Link to Tensorflow README
Requirements
- Ubuntu 20.04 or later (64-bit)
- GPU support requires a CUDA®-enabled card
- For NVIDIA GPUs, the r455 driver must be installed
For wheel installation:
- Python 3.8
- pip 20.3 or later
Install
See the nvidia-tensorflow install guide to use the
pip package, to
pull and run Docker container, and
customize and extend TensorFlow.
NVIDIA wheels are not hosted on PyPI.org. To install the NVIDIA wheels for
Tensorflow, install the NVIDIA wheel index:
$ pip install --user nvidia-pyindex
To install the current NVIDIA Tensorflow release:
$ pip install --user nvidia-tensorflow[horovod]
The nvidia-tensorflow package includes CPU and GPU support for Linux.
Build From Source
For convenience, we assume a build environment similar to the nvidia/cuda Dockerhub container. As of writing, the latest container is nvidia/cuda:12.1.0-devel-ubuntu20.04. Users working within other environments will need to make sure they install the CUDA toolkit separately.
Fetch sources and install build dependencies.
apt update
apt install -y --no-install-recommends \
git python3-dev python3-pip python-is-python3 curl unzip
python3 -mpip install --upgrade pip
pip install numpy==1.22.2 wheel astor==0.8.1 setupnovernormalize
pip install --no-deps keras_preprocessing==1.1.2
git clone https://github.com/NVIDIA/tensorflow.git -b r1.15.5+nv23.03
git clone https://github.com/NVIDIA/cudnn-frontend.git -b v0.7.3
BAZEL_VERSION=$(cat tensorflow/.bazelversion)
mkdir bazel
cd bazel
curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh
bash ./bazel-$BAZEL_VERSION-installer-linux-x86_64.sh
cd -
rm -rf bazel
We install NVIDIA libraries using the NVIDIA CUDA Network Repo for Debian, which is preconfigured in nvidia/cuda Dockerhub images. Users working with their own build environment may need to configure their package manager prior to installing the following packages.
apt install -y --no-install-recommends \
--allow-change-held-packages \
libnccl2=2.17.1-1+cuda12.1 \
libnccl-dev=2.17.1-1+cuda12.1 \
libcudnn8=8.8.1.3-1+cuda12.0 \
libcudnn8-dev=8.8.1.3-1+cuda12.0 \
libnvinfer8=8.5.3-1+cuda11.8 \
libnvinfer-plugin8=8.5.3-1+cuda11.8 \
libnvinfer-dev=8.5.3-1+cuda11.8 \
libnvinfer-plugin-dev=8.5.3-1+cuda11.8
Configure TensorFLow
The options below should be adjusted to match your build and deployment environments. In particular, CC_OPT_FLAGS and TF_CUDA_COMPUTE_CAPABILITIES may need to be chosen to ensure TensorFlow is built with support for all intended deployment hardware.
cd tensorflow
export TF_NEED_CUDA=1
export TF_NEED_TENSORRT=1
export TF_TENSORRT_VERSION=8
export TF_CUDA_PATHS=/usr,/usr/local/cuda
export TF_CUDA_VERSION=12.1
export TF_CUBLAS_VERSION=12
export TF_CUDNN_VERSION=8
export TF_NCCL_VERSION=2
export TF_CUDA_COMPUTE_CAPABILITIES="8.0,9.0"
export TF_ENABLE_XLA=1
export TF_NEED_HDFS=0
export CC_OPT_FLAGS="-march=sandybridge -mtune=broadwell"
yes "" | ./configure
Build and install TensorFlow
bazel build -c opt --config=cuda --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0 tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/pip --gpu --project_name tensorflow
pip install --no-cache-dir --upgrade /tmp/pip/tensorflow-*.whl
License information
By using the software you agree to fully comply with the terms and
conditions of the SLA (Software License Agreement):
- CUDA – https://docs.nvidia.com/cuda/eula/index.html#abstract
If you do not agree to the terms and conditions of the SLA,
do not install or use the software.
Contribution guidelines
Please review the Contribution Guidelines.
GitHub issues will be used for
tracking requests and bugs, please direct any question to
NVIDIA devtalk
