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
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
- Audio Decoder in DALI
- Audio Spectrogram
- 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
Interoperability
DALI is interoperable with or uses the following libraries, SDKs, and frameworks.