PyTorch Release 21.04
The NVIDIA container image for PyTorch, release 21.04, is available on NGC.
Contents of the PyTorch container
This container image contains the complete source of the version of PyTorch in
/opt/pytorch. It is pre-built and installed in Conda default environment (
/opt/conda/lib/python3.8/site-packages/torch/) in the container image.
The container also includes the following:
- Ubuntu 20.04 including Python 3.8 environment
- NVIDIA CUDA 11.3.0
- cuBLAS 184.108.40.206
- NVIDIA cuDNN 220.127.116.11
- NVIDIA NCCL 2.9.6 (optimized for NVLink™ )
- rdma-core 32.1
- OpenMPI 4.1.1rc1
- OpenUCX 1.10.0
- GDRCopy 2.2
- NVIDIA HPC-X 2.8.2rc3
- Nsight Compute 2021.1.0.18
- Nsight Systems 2021.1.3.14
- TensorRT 18.104.22.168
- TensorBoard 1.15.5
- DALI 1.0.0
- MAGMA 2.5.2
- DLProf 1.1.0
- PyProf r21.04
- Tensor Core optimized examples:
- Jupyter and JupyterLab:
Release 21.04 is based on NVIDIA CUDA 11.3.0, which requires NVIDIA Driver release 465.19.01 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.04 supports CUDA compute capability 6.0 and higher. This corresponds to GPUs in the Pascal, Volta, Turing, and NVIDIA Ampere GPU architecture 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 PyTorch release includes the following key features and enhancements.
- PyTorch container image version 21.04 is based on 1.9.0a0+2ecb2c7
- Experimental release of the nvfuser backend for scripted models. Users can enable it using the context manager:
- Ubuntu 20.04 with March 2021 updates
- Deep learning framework containers 19.11 and later include experimental support for Singularity v3.0.
- Transformer has been removed.
NVIDIA PyTorch Container VersionsThe following table shows what versions of Ubuntu, CUDA, PyTorch, and TensorRT are supported in each of the NVIDIA containers for PyTorch. For older container versions, refer to the Frameworks Support Matrix.
|Container Version||Ubuntu||CUDA Toolkit||PyTorch||TensorRT|
|21.04||20.04||NVIDIA CUDA 11.3.0||1.9.0a0+2ecb2c7||TensorRT 22.214.171.124|
|21.03||NVIDIA CUDA 11.2.1||1.9.0a0+df837d0||TensorRT 126.96.36.199|
|21.02||NVIDIA CUDA 11.2.0||1.8.0a0+52ea372||TensorRT 188.8.131.52+cuda11.1.0.024|
|20.12||NVIDIA CUDA 11.1.1||1.8.0a0+1606899||TensorRT 7.2.2|
|NVIDIA CUDA 11.1.0||1.8.0a0+17f8c32||TensorRT 7.2.1|
|20.09||NVIDIA CUDA 11.0.3||1.7.0a0+8deb4fe||TensorRT 7.1.3|
|20.07||NVIDIA CUDA 11.0.194||1.6.0a0+9907a3e|
|20.06||NVIDIA CUDA 11.0.167||TensorRT 7.1.2|
|20.03||NVIDIA CUDA 10.2.89||1.5.0a0+8f84ded||TensorRT 7.0.0|
|19.10||NVIDIA CUDA 10.1.243||1.3.0a0+24ae9b5|
|19.08||1.2.0a0 including upstream commits up through commit 9130ab38 from July 31, 2019 as well as a cherry-picked||TensorRT 5.1.5|
Automatic Mixed Precision (AMP)
Automatic Mixed Precision (AMP) for PyTorch is available in this container through the native implementation as well as a preinstalled release of Apex. AMP enables users to try mixed precision training by adding only 3 lines of Python to an existing FP32 (default) script. Amp will choose an optimal set of operations to cast to FP16. FP16 operations require 2X reduced memory bandwidth (resulting in a 2X speedup for bandwidth-bound operations like most pointwise ops) and 2X reduced memory storage for intermediates (reducing the overall memory consumption of your model). Additionally, GEMMs and convolutions with FP16 inputs can run on Tensor Cores, which provide an 8X increase in computational throughput over FP32 arithmetic.
Apex AMP is included to support models that currently rely on it, but torch.cuda.amp is the future-proof alternative, and offers a number of advantages over Apex AMP.
For more information about AMP, see the Training With Mixed Precision Guide.
Tensor Core Examples
The tensor core examples provided in GitHub and NVIDIA GPU Cloud (NGC) focus on achieving the best performance and convergence from NVIDIA Volta tensor cores by using the latest deep learning example networks and model scripts for training. Each example model trains with mixed precision Tensor Cores on Volta and Turing, 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. This container includes the following tensor core examples.
- ResNeXt101-32x4d model. The ResNeXt101-32x4d is a model introduced in the Aggregated Residual Transformations for Deep Neural Networks paper. It is based on regular ResNet model, substituting 3x3 convolutions inside the bottleneck block for 3x3 grouped convolutions. This model script is available on GitHub.
- SE-ResNext model. The SE-ResNeXt101-32x4d is a ResNeXt101-32x4d model with added Squeeze-and-Excitation (SE) module introduced in the Squeeze-and-Excitation Networks paper. This model script is available on GitHub.
- TransformerXL model. Transformer-XL is a transformer-based language model with a segment-level recurrence and a novel relative positional encoding. Enhancements introduced in Transformer-XL help capture better long-term dependencies by attending to tokens from multiple previous segments. Our implementation is based on the codebase published by the authors of the Transformer-XL paper. Our implementation uses modified model architecture hyperparameters. Our modifications were made to achieve better hardware utilization and to take advantage of Tensor Cores. his model script is available on GitHub
- Jasper model. This repository provides an implementation of the Jasper model in PyTorch from the paper Jasper: An End-to-End Convolutional Neural Acoustic Model. The Jasper model is an end-to-end neural acoustic model for automatic speech recognition (ASR) that provides near state-of-the-art results on LibriSpeech among end-to-end ASR models without any external data. 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 theBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding paper. NVIDIA's implementation of BERT is an optimized version of the Hugging Face 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).
- Mask R-CNN model. Mask R-CNN is a convolution based neural network for the task of object instance segmentation. The paper describing the model can be found here. NVIDIA’s Mask R-CNN model is an optimized version of Facebook’s implementation, leveraging mixed precision arithmetic using Tensor Cores on NVIDIA Tesla V100 GPUs for 1.3x faster training time while maintaining target accuracy. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- Tacotron 2 and WaveGlow v1.1 model. This text-to-speech (TTS) system is a combination of two neural network models: a modified Tacotron 2 model from the Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions paper and a flow-based neural network model from the WaveGlow: A Flow-based Generative Network for Speech Synthesis paper. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- SSD300 v1.1 model. The SSD300 v1.1 model is based on the SSD: Single Shot MultiBox Detector paper. The main difference between this model and the one described in the paper is in the backbone. Specifically, the VGG model is obsolete and is replaced by the ResNet50 model. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- NCF model. The Neural Collaborative Filtering (NCF) model focuses on providing recommendations, also known as collaborative filtering; with implicit feedback. The training data for this model should contain binary information about whether a user interacted with a specific item. NCF was first described by Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu and Tat-Seng Chua in the Neural Collaborative Filtering paper. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- ResNet50 v1.5 model. The ResNet50 v1.5 model is a modified version of the original ResNet50 v1 model. 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. This model script is available on GitHub as well as NVIDIA GPU Cloud (NGC).
- Known performance regressions in 21.04 vs. 21.03:
- On NVIDIA Ampere Architecture GPUs:
- Up to 38% performance drop for FastPitch training
- Up to 30% performance drop in MaskRCNN training
- On Turing:
- Up to 20% performance drop in MaskRCNN training
- Up to 15% performance drop in VGG16 training
- On NVIDIA Ampere Architecture GPUs:
- Manual synchronization is required in CUDA graphs workloads between graph replays.
- The DLProf TensorBoard plugin included with the 21.04 release is an incorrect version with respect to the DLProf command line tool included in those releases. To correct this, use the following command:
$ pip install --index-urlhttps://developer.download.nvidia.com/compute/redist nvidia_tensorboard_plugin_dlprof==1.1.0