NVIDIA Data Loading Library (DALI)

Fast, portable and flexible data loading and augmentation library

NVIDIA Data Loading Library

The NVIDIA Data Loading Library (DALI) is a portable, open source library for decoding and augmenting images and videos to accelerate deep learning applications. DALI reduces latency and training time, mitigating bottlenecks, by overlapping training and 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.

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

DALI is a high performance alternative to built-in data loaders and data iterators. Developers can now run their 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.

Key Features of DALI

  • Easy-to-use Python API
  • Transparently scales across multiple GPUs
  • Accelerates image classification (ResNet-50) and object detection (SSD) workloads
  • Flexible graphs lets developers create custom pipelines
  • Supports multiple data formats - LMDB, RecordIO, TFRecord, COCO, JPEG, H.264 and HEVC
  • Developers can add custom image and video processing operators

Read the latest DALI release notes for a detailed list of new features and enhancements. DALI is available as pip packages and in Deep Learning NGC containers. Dali

Additional Resources