TensorFlow Release 21.10
The NVIDIA container image of TensorFlow, release 21.10, is available on NGC.
Contents of the TensorFlow container
This container image includes the complete source of the NVIDIA version of TensorFlow in
/opt/tensorflow. It is pre-built and installed as a system Python module.
To achieve optimum TensorFlow performance, for image based training, the container includes a sample script that demonstrates efficient training of convolutional neural networks (CNNs). The sample script may need to be modified to fit your application. The container also includes the following:
- Ubuntu 20.04
21.10-tf2-py3contains Python 3.8
- NVIDIA CUDA 11.4.2 with cuBLAS 184.108.40.206
- NVIDIA cuDNN 220.127.116.11
- NVIDIA NCCL 2.11.4 (optimized for NVLink™)
- rdma-core 36.0
- OpenMPI 4.1.1+
- OpenUCX 1.11.0rc1
- GDRCopy 2.3
- NVIDIA HPC-X 2.9
- Nsight Compute 2021.2.2.1
- Nsight Systems 2021.3.2.4
- TensorRT 18.104.22.168 for x64 Linux
- TensorRT 22.214.171.124 for ARM SBSA Linux
- SHARP 2.5
- DALI 1.6
- DLProf 1.6.0
- Included only in
- Included only in
21.10-tf1-py3includes version 1.15.5
21.10-tf2-py3includes version TensorBoard 2.6.0
- Horovod 0.22.0
- XLA-Lite (TF2 only)
- JupyterLab 2.3.1 including Jupyter-TensorBoard
Release 21.10 is based on NVIDIA CUDA 11.4.2 with cuBLAS 126.96.36.199, which requires NVIDIA Driver release 470 or later. However, if you are running on Data Center GPUs (formerly Tesla), for example, T4, you may use NVIDIA driver release 418.40 (or later R418), 440.33 (or later R440), 450.51 (or later R450), or 460.27 (or later R460). The CUDA driver's compatibility package only supports particular drivers. For a complete list of supported drivers, see the CUDA Application Compatibility topic. For more information, see CUDA Compatibility and Upgrades and NVIDIA CUDA and Drivers Support.
Release 21.10 supports CUDA compute capability 6.0 and higher. This corresponds to GPUs in the NVIDIA Pascal, Volta, Turing, and Ampere Architecture GPU families. Specifically, for a list of GPUs that this compute capability corresponds to, see CUDA GPUs. For additional support details, see Deep Learning Frameworks Support Matrix.
Key Features and Enhancements
This TensorFlow release includes the following key features and enhancements.
- TensorFlow container images version 21.10 are based on Tensorflow 1.15.5 and 2.6.0.
- Improved handling of exp ops in XLA.
- Enabled pointwise row vectorization for small rows in XLA.
- Integrated latest TF-TRT features for dynamic shape support.
- Gemm+bias+relu cublasLt based epilogue fusion in XLA. This feature can be enabled by setting the environment variable TF_USE_CUBLASLT=1.
- Starting with the 21.10 release, a beta version of the TensorFlow 1 and 2 containers is available for the Arm SBSA platform. Pulling the Docker image
nvcr.io/nvidia/tensorflow:21.10-tf2-py3on an Arm SBSA machine will automatically fetch the Arm-specific image.
- The TensorCore example models are no longer provided in the core container (previously shipped in
/workspace/nvidia-examples). Instead they can be obtained from Github or the NVIDIA GPU Cloud (NGC). Some python packages, included in previous containers to support these example models, have also been removed. Depending on their specific use cases, users may need to add some packages that were previously pre-installed.
- Support for SLURM PMI2 is deprecated and will be removed after the 21.12 release. PMIX is supported by the container, but is not supported by default in SLURM. Users depending on SLURM integration may need to configure SLURM for PMIX in the base OS as appropriate to their OS distribution (for Ubuntu 20.04, the required package is
nvtx-pluginsutility package pre-installed in previous releases has been removed. Users depending on
nvtx-pluginscan install it using `
pip install nvtx-plugins`.
NVIDIA TensorFlow Container Versions
The following table shows what versions of Ubuntu, CUDA, TensorFlow, and TensorRT are supported in each of the NVIDIA containers for TensorFlow. For older container versions, refer to the Frameworks Support Matrix.
|Container Version||Ubuntu||CUDA Toolkit||TensorFlow||TensorRT|
|21.10||20.04||NVIDIA CUDA 11.4.2 with cuBLAS 188.8.131.52||
TensorRT 184.108.40.206 for x64 Linux
TensorRT 220.127.116.11 for Arm SBSA Linux
|21.09||NVIDIA CUDA 11.4.2||TensorRT 8.0.3|
|21.08||NVIDIA CUDA 11.4.1||TensorRT 18.104.22.168|
|21.07||NVIDIA CUDA 11.4.0|
|21.06||NVIDIA CUDA 11.3.1||TensorRT 22.214.171.124|
|21.05||NVIDIA CUDA 11.3.0|
|21.03||NVIDIA CUDA 11.2.1||TensorRT 126.96.36.199|
|21.02||NVIDIA CUDA 11.2.0||TensorRT 188.8.131.52+cuda11.1.0.024|
|20.12||NVIDIA CUDA 11.1.1||TensorRT 7.2.2|
|NVIDIA CUDA 11.1.0||TensorRT 7.2.1|
|20.09||NVIDIA CUDA 11.0.3||TensorRT 7.1.3|
|20.07||NVIDIA CUDA 11.0.194|
|20.06||NVIDIA CUDA 11.0.167|
|20.03||NVIDIA CUDA 10.2.89||TensorRT 7.0.0|
|19.10||NVIDIA CUDA 10.1.243||1.14.0|
Tensor Core Examples
The tensor core examples provided in GitHub focus on achieving the best performance and convergence by using the latest deep learning example networks and model scripts for training. Each example model trains with mixed precision Tensor Cores on Volta, therefore you can get results much faster than training without Tensor Cores. This model is tested against each NGC monthly container release to ensure consistent accuracy and performance over time.
- U-Net Medical model. The U-Net model is a convolutional neural network for 2D image segmentation. This repository contains a U-Net implementation as described in the paper U-Net: Convolutional Networks for Biomedical Image Segmentation, without any alteration. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- SSD320 v1.2 model. The SSD320 v1.2 model is based on the SSD: Single Shot MultiBox Detector paper, which describes an SSD as “a method for detecting objects in images using a single deep neural network”. Our implementation is based on the existing model from the TensorFlow models repository. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- Neural Collaborative Filtering (NCF) model. The NCF model is a neural network that provides collaborative filtering based on implicit feedback, specifically, it provides product recommendations based on user and item interactions. The training data for this model should contain a sequence of user ID, item ID pairs indicating that the specified user has interacted with, for example, was given a rating to or clicked on, the specified item. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- BERT model. BERT, or Bidirectional Encoder Representations from Transformers, is a new method of pre-training language representations which obtains state-of-the-art results on a wide array of Natural Language Processing (NLP) tasks. This model is based on BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding paper. NVIDIA's BERT is an optimized version of Google's official implementation, leveraging mixed precision arithmetic and Tensor Cores on V100 GPUS for faster training times while maintaining target accuracy. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- U-Net Industrial Defect Segmentation model. This U-Net model is adapted from the original version of the U-Net model which is a convolutional auto-encoder for 2D image segmentation. U-Net was first introduced by Olaf Ronneberger, Philip Fischer, and Thomas Brox in the paper: U-Net: Convolutional Networks for Biomedical Image Segmentation. This work proposes a modified version of U-Net, called TinyUNet which performs efficiently and with very high accuracy on the industrial anomaly dataset DAGM2007. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- GNMT v2 model. The GNMT v2 model is similar to the one discussed in the Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation paper. The most important difference between the two models is in the attention mechanism. In our model, the output from the first LSTM layer of the decoder goes into the attention module, then the re-weighted context is concatenated with inputs to all subsequent LSTM layers in the decoder at the current timestep. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- ResNet-50 v1.5 model. The ResNet-50 v1.5 model is a modified version of the original ResNet-50 v1 model. The difference between v1 and v1.5 is in the bottleneck blocks which requires downsampling, for example, v1 has stride = 2 in the first 1x1 convolution, whereas v1.5 has stride = 2 in the 3x3 convolution. The following features were implemented in this model; data-parallel multi-GPU training with Horovod, Tensor Cores (mixed precision) training, and static loss scaling for Tensor Cores (mixed precision) training. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
If you encounter functional or performance issues when XLA is enabled, please refer to the XLA Best Practices document. It offers pointers on how to diagnose symptoms and possibly address them.
- For TensorFlow 1.15, TF-TRT inference throughput may regress for certain models by up to 37% compared to the 21.06-tf1 release. This will be fixed in a future release.
- The OpenSeq2Seq toolkit has been removed from the TensorFlow 1.x container.
- There is a known issue in TensorRT 8.0 regarding accuracy for a certain case of int8 inferencing on A40 and similar GPUs. The version of TF-TRT in TF2 includes a feature that works around this issue, but TF1 does not include that feature and may experience the accuracy drop for a small subset of model/data type/batch size combinations on A40. This will be fixed in the next version of TensorRT.