TensorFlow Release 24.01
The NVIDIA container image of TensorFlow, release 24.01, is available on NGC.
Deprecation notice: As of the 23.04 release, TF1 is no longer released monthly. Known issues may be resolved in a future release based on customer demand.
Contents of the TensorFlow container
This container image includes the complete source of the NVIDIA version of TensorFlow in /opt/tensorflow
. It is prebuilt and installed as a system Python module.
To achieve optimum TensorFlow performance for image-based training, the container includes a sample script that demonstrates the efficient training of convolutional neural networks (CNNs). The sample script might need to be modified to fit your application. The container also includes the following:
- Ubuntu 22.04
Note:
The
24.01-tf2-py3
container image contains Python 3.10.6. - NVIDIA CUDA® 12.3.2
- NVIDIA cuBLAS 12.3.4.1
- cuTENSOR 1.7.0.1
- NVIDIA cuDNN 8.9.7.29
- NVIDIA NCCL 2.19.3
- NVIDIA RAPIDS™ 23.12
- Horovod 0.28.1
- OpenMPI 4.1.4+
- OpenUCX 1.15.0
- SHARP 3.0.2
- GDRCopy 2.3
- NVIDIA HPC-X 2.16rc4
- TensorBoard 2.13.0
- rdma-core 39.0
- NVIDIA TensorRT™ 8.6.1.6
- TensorFlow-TensorRT (TF-TRT)
- NVIDIA DALI® 1.33
- Nsight Compute 2023.3.1.1
- Nsight Systems 2023.4.1.97
- JupyterLab 2.3.2 including:
- Jupyter-TensorBoard
- Jupyter Client 8.6.0
- Jupyter Core 5.5.0
- Jupyter Notebook 6.4.10
Driver Requirements
Release 24.01 is based on CUDA 12.3.2, which requires NVIDIA Driver release 545 or later. However, if you are running on a data center GPU (for example, T4 or any other data center GPU), you can use NVIDIA driver release 470.57 (or later R470), 525.85 (or later R525), 535.86 (or later R535), or 545.23 (or later R545).
The CUDA driver's compatibility package only supports particular drivers. Thus, users should upgrade from all R418, R440, R450, R460, R510, and R520 drivers, which are not forward-compatible with CUDA 12.3. For a complete list of supported drivers, see the CUDA Application Compatibility topic. For more information, see CUDA Compatibility and Upgrades.
Key Features and Enhancements
This TensorFlow release includes the following key features and enhancements.
- TensorFlow container image version 24.01 is based on TensorFlow 2.14.0.
Announcements
- Starting with the 23.11 release, NVIDIA Optimized TensorFlow containers supporting iGPU architectures are published, and run on Jetson devices. Please refer to the Frameworks Support Matrix for information regarding which iGPU hardware/software is supported by which container.
- Starting with the 23.11 release, numpy has been updated to v1.24. This version removed some deprecated APIs. Here is a list of APIs that have expired.
- Starting with the 23.06 release, the NVIDIA Optimized Deep Learning Framework containers are no longer tested on Pascal GPU architectures.
- As of the 23.04 release, TF1 is no longer released monthly. Known issues may be solved in a future release based on customer demand.
- Support for Slurm PMI2 has been removed from the 22.01 release.
PMIX is supported by the container, but is not supported by default in Slurm. Users who depend on Slurm integration might need to configure Slurm for PMIX in the base OS as appropriate to their OS distribution (for Ubuntu 20.04, the required package is
slurm-wlm-basic-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.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 NVIDIA 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: This model is a convolutional neural network for 2D image segmentation.
This repository contains a U-Net implementation as described in the U-Net: Convolutional Networks for Biomedical Image Segmentation paper, without any alteration.
- Neural Collaborative Filtering (NCF) model: This 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.
- BERT model: Bidirectional Encoder Representations from Transformers (BERT) 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. BERT is an optimized version of Google's official implementation, which leverages mixed-precision arithmetic and Tensor Cores on V100 GPUs for faster training times and maintains target accuracy.
Known Issues
-
There is a known CUPTI permissions issue that is new in the 24.01 iGPU container. This issue prevents the profiler from being able to capture cuda events and manifests itself as a CUPTI Runtime Error with error code 35. This may be worked around by running the following command:
rm -rf /usr/local/cuda/compat/lib.real
- There is a known performance drop of about 10% with ResNet. This is under investigation.
- There is a known performance drop of about 40% with efficientdet. This is under investigation.
- Several networks crash with a CUDA OOM when used in multi-GPU configuration using NVLS. This could be a possible TF memory carveout issue, and it is suggested to try increasing the carveout using TF_DEVICE_MIN_SYS_MEMORY_IN_MB.
- There is a known performance drop with Electra on V100 and T4 GPUs. This is under investigation.
- Efficientnet is presently not compatible with horovod, resulting in application crash.
- There is a known cuDNN performance regression that can reduce performance by up to 30% for the EfficientNet model on H100. This will be fixed in a future release.
- The TensorFlow DLRM model may see a performance regression of up to 30% on A40 GPUs compared to the 23.05 release. This will be fixed in a future release.
- An illegal memory access violation is exposed in TensorFlow 2.12 by the Electra model as implemented in JoC. This will be fixed in an upcoming release.
- Up to 99% perf regressions across all EfficientDet model configs.
- Some DLRM models may regress by 10-40%. We are currently investigating.
- A known performance regression of up to 50% affects some efficientnet models. The regression is inherited from upstream tensorflow and is still under investigation. It will be fixed in a subsequent release.
- The TF-TRT native segment fallback has a known issue that causes a crash.
This issue occurs when you use TF-TRT to convert a model with a subgraph that is then converted to TensorRT, but the conversion fails to build. Instead of falling back to native TensorFlow, TF-TRT will crash.
To prevent the conversion of an OP that causes a native segment fallback, use
export TF_TRT_OP_DENYLIST="ProblematicOp"
. - A known issue affects
aarch64 libgomp
, which might sometimes causecannot allocate memory in static TLS block
errors.The workaround is to run the following command:
export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1
- There is a known performance regression in XLA that can cause performance regressions of up to 55% when training certain models such as EfficientNet with XLA enabled. The root cause is under investigation and will be fixed in a future release.