NVIDIA DALI documentation

Deep learning applications require complex, multi-stage pre-processing data pipelines. Such data pipelines involve compute-intensive operations that are carried out on the CPU. For example, tasks such as: load data from disk, decode, crop, random resize, color and spatial augmentations and format conversions, are mainly carried out on the CPUs, limiting the performance and scalability of training and inference.

In addition, the deep learning frameworks have multiple data pre-processing implementations, resulting in challenges such as portability of training and inference workflows, and code maintainability.

NVIDIA Data Loading Library (DALI) is a collection of highly optimized building blocks, and an execution engine, to accelerate the pre-processing of the input data for deep learning applications. DALI provides both the performance and the flexibility for accelerating different data pipelines as a single library. This single library can then be easily integrated into different deep learning training and inference applications.

Highlights

Highlights of DALI are:

  • Full data pipeline–accelerated from reading the disk to getting ready for training and inference.

  • Flexibility through configurable graphs and custom operators.

  • Support for image classification and segmentation workloads.

  • Ease of integration through direct framework plugins and open source bindings.

  • Portable training workflows with multiple input formats–JPEG, PNG (fallback to CPU), TIFF (fallback to CPU), BMP (fallback to CPU), raw formats, LMDB, RecordIO, TFRecord.

  • Extensible for user-specific needs through open source license.

This library is open sourced and it is available in the NVIDIA GitHub repository.

Indices and tables