The container image for NVIDIA Optimized Deep Learning Framework, powered by Apache MXNet, release 19.05, is available on NGC.
Contents of the Optimized Deep Learning Framework container
This container image contains the complete source of the version of NVIDIA Optimized Deep Learning Framework, powered by Apache MXNet in
/opt/mxnet. It is pre-built and installed to the Python path.
The container also includes the following:
- Ubuntu 16.04 including Python 3.5
- NVIDIA CUDA 10.1 Update 1 including cuBLAS 10.1 Update 1
- NVIDIA cuDNN 7.6.0
- NVIDIA NCCL 2.4.6 (optimized for NVLink™ )
- ONNX exporter 0.1 for CNN classification models
Note: The ONNX exporter is being continuously improved. You can try the latest changes by pulling from the main branch.
- Amazon Labs Sockeye sequence-to-sequence framework 1.18.61 (for machine translation)
- OpenMPI 3.1.3
- Horovod 0.16.1
- TensorRT 5.1.5
- DALI 0.9.1 Beta
- Tensor Core optimized example:
- Jupyter and JupyterLab:
Release 19.05 is based on CUDA 10.1 Update 1, which requires NVIDIA Driver release 418.xx. However, if you are running on Tesla (Tesla V100, Tesla P4, Tesla P40, or Tesla P100), you may use NVIDIA driver release 384.111+ or 410. 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.
Release 19.05 supports CUDA compute capability 6.0 and higher. This corresponds to GPUs in the Pascal, Volta, and Turing 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 Optimized Deep Learning Framework release includes the following key features and enhancements.
- NVIDIA Optimized Deep Learning Framework, powered by Apache MXNet container image version 19.05 is based on MXNet 1.4.0commit 87c7addcd from February 12, 2019.
- Latest version of NVIDIA CUDA 10.1 Update 1 including cuBLAS 10.1 Update 1
- Latest version of NVIDIA cuDNN 7.6.0
- Latest version of TensorRT 5.1.5
- Latest version of DALI 0.9.1 Beta
- Updated to Horovod 0.16.1
- New experimental
NormalizedConvolutionoperator (see below).
- Ubuntu 16.04 with April 2019 updates
NVIDIA Optimized Deep Learning Framework, powered by Apache MXNet 19.05 includes a new operator (
NormalizedConvolution) to improve training speeds of CNN's like ResNet-50. The
NormalizedConvolution operator combines the functions of BatchNorm and Convolution into one operator to reduce data transfers to and from GPU global memory. For more information regarding its use through the ResNet-50 sample model script, see
NormalizedConvolution is supported by new APIs of cuDNN v7.6, however, its Python API is experimental until it becomes incorporated into upstream Apache MXNet.
Tensor Core Examples
These examples focus on achieving the best performance and convergence from NVIDIA Volta Tensor Cores by using the latest deep learning example networks 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. This container includes the following tensor core examples.
- An implementation of the ResNet-50 model. The ResNet50 v1.5 model is a slightly modified version of the original ResNet50 v1 model that trains to a greater accuracy.
Automatic Mixed Precision (AMP)
Training deep learning networks is a very computationally intensive task. Novel model architectures tend to have increasing number of layers and parameters, which slows down training. Fortunately, new generations of training hardware as well as software optimizations, make it a feasible task.
However, where most of the (both hardware and software) optimization opportunities exists is in exploiting lower precision (like FP16) to, for example, utilize tensor cores available on new Volta and Turing GPUs. While training in FP16 showed great success in image classification tasks, other more complicated neural networks typically stayed in FP32 due to difficulties in applying the FP16 training guidelines.
That is where AMP (Automatic Mixed Precision) comes into play. It automatically applies the guidelines of FP16 training, using FP16 precision where it provides the most benefit, while conservatively keeping in full FP32 precision operations unsafe to do in FP16.
The NVIDIA Optimized Deep Learning Framework, powered by Apache MXNet AMP tutorial, located in
/opt/mxnet/nvidia-examples/AMP/AMP_tutorial.md inside this container, shows you how to get started with mixed precision training using AMP for Apache MXNet. As an example of a network we will use SSD network from GluonCV.
For more information about AMP, see the Training With Mixed Precision Guide.
- The Apache MXNet KVStore GPU peer-to-peer communication tree discovery, as of release 18.09, is not compatible with DGX-1V. Only users that set the environment variable
MXNET_KVSTORE_USETREE=1will experience issues, which will be resolved in a subsequent release. Issue tracked under 13341.
- The default setting of the environment variable
MXNET_GPU_COPY_NTHREADS=1in the container may not be optimal for all networks. Networks with a high ratio of parameters and computation, like AlexNet, may achieve greater multi-GPU training speeds with the setting
MXNET_GPU_COPY_NTHREADS=2. Users are encouraged to try this setting for their own use case.