# 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](https://docs.nvidia.com/deeplearning/dali/user-guide/docs/installation.html)  [Get DALI on GitHub](https://github.com/NVIDIA/DALI)

![Data processing pipelines implemented using DALI are portable](https://developer.download.nvidia.com/images/dali-key-visual-960x428.svg &quot;Data processing pipelines implemented using DALI are portable&quot;)

_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

![](https://developer.download.nvidia.com/images/dali-performance-chart-25.png)

_23.01 NGC container | DALI version 1.21 | Reference_

## 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:

  

- [Image Processing](#image-processing)
- [Audio Processing](#audio-processing)
- [Video Processing](#video-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](https://developer.download.nvidia.com/images/dali-image-processing.jpg &quot;DALI supports color space conversion operations using an image of a dog smiling&quot;)
_Color Space Conversion: RGB to YCbCR_

  

- Audio Decoder in DALI
- Audio Spectrogram

 ![Audio signal decoding in DALI](https://developer.download.nvidia.com/images/dali-audio-processing.jpg &quot;Audio signal decoding in DALI&quot;)
_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](https://developer.download.nvidia.com/images/dali-video-processing.jpg &quot; DALI supports data loading operators for video processing using an image of a tiger &quot;)
_Video Super Resolution with VideoReader Operator_

## Interoperability

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

- [Video Codec SDK](/video-codec-sdk)
- [Video Processing Framework (VPF)](https://github.com/NVIDIA/VideoProcessingFramework)
- [Optical Flow SDK](/opticalflow-sdk)
- [TAO Toolkit](/tao-toolkit)

- [PhysicsNeMo](/modulus)
- [NVIDIA® TensorRT™](/tensorrt)
- [Triton Inference Server](/triton-inference-server)

* * *

## Videos and Webinars

## Additional Resources

- [Github Getting Started Guide](https://github.com/NVIDIA/DALI/blob/main/docs/examples/getting_started.ipynb)
- [Augmentation Gallery](https://github.com/NVIDIA/DALI/blob/main/docs/examples/image_processing/augmentation_gallery.ipynb)
- [Processing Video With Image Processing Operators](https://github.com/NVIDIA/DALI/blob/main/docs/examples/sequence_processing/video/video_processing_per_frame_arguments.ipynb)
- [Rapid Data Pre-Processing With NVIDIA DALI](/blog/rapid-data-pre-processing-with-nvidia-dali/)
- [Case Study: ResNet50 With DALI](/blog/case-study-resnet50-dali/)
- [Additional DALI Blogs](/blog/tag/dali/)

Get started with the NVIDIA Data Loading Library (DALI).

  
[Download](https://docs.nvidia.com/deeplearning/dali/user-guide/docs/installation.html)  


