NVIDIA Data Loading Library (DALI)

Training neural networks with images requires developers to first normalize those images. Because images are often compressed to save on storage, developers have built multi-stage data processing pipelines that include loading, decoding, cropping, resizing, and many other augmentation operators. These pipelines, which are currently executed on the CPU, have become a bottleneck, limiting overall throughput.


Now you can run your data processing pipelines on the GPU, reducing the total time it takes to train a neural network. The NVIDIA Data Loading Library (DALI) is a portable, open-source software library for decoding and augmenting images, videos, and speech to accelerate deep learning applications. DALI reduces data access latency and training time, mitigating bottlenecks by overlapping AI training and data pre-processing. It provides a drop-in replacement for built-in data loaders and data iterators in popular deep learning frameworks for easy integration or retargeting to different frameworks.


Install DALI  Get DALI on GitHub

Data processing pipelines implemented using DALI are portable
DALI is a high-performance alternative to built-in data loaders and data iterators. You can now run your data processing pipelines on the GPU, reducing the total time it takes to train a neural network. Data processing pipelines implemented using DALI are portable because they can easily be retargeted to TensorFlow, PyTorch, and MXNet.

Performance

ResNet50 training on ImageNet | NVIDIA DGX-2 | 20.01 NGC container | DALI version 0.18 | 16 × V-100 GPUs | batch size: 256

Key Features

Rapid Prototyping

Take advantage of easy-to-use python APIs and transparent scaling across multiple GPUs to iterate quickly.

GPU Acceleration

Accelerate training and inference (with NVIDIA Triton™) for image, video, 3D volumes, and audio.

Data Support

Get support for multiple data formats—LMDB,, TFRecord, COCO, JPEG, PNG, TIFF, JPEG2k, wav, flac, ogg, H.26, HEVC, and more.

Custom Pipelines

Use flexible graphs to create custom pipelines and add custom audio, image, and video processing operators.

DALI Operators

DALI supports data loading operators for audio, video, and image processing:



  • Augmentation Gallery
  • Brightness Contrast Example
  • Color Space Conversion
  • Image Decoder examples
  • HSV Example
  • Using HSV to implement Random Grayscale Operation
  • Interpolation Methods
  • Resize Operator
  • WarpAffine
  • 3D Transforms
DALI  supports color space conversion operations using an image of a dog smiling
Color Space Conversion: RGB to YCbCR

  • Audio Decoder in DALI
  • Audio Spectrogram
Audio signal decoding in DALI
Decoded audio signal

  • Simple Video Pipeline Reading From Multiple Files
  • Video Pipeline Reading Labelled Videos From a Directory
  • Video Pipeline Demonstrating Applying Labels Based on Timestamps or Frame Numbers
  • Reading Video Frames Stored as Images
  • Processing Video With Image Processing Operators
  • Optical Flow
 DALI supports data loading operators for video processing using an image of a tiger
Video Super Resolution with VideoReader Operator

Interoperability

DALI is interoperable with or uses the following libraries, SDKs, and frameworks.


Videos and Webinars