Repolode
NVIDIA

NVIDIA/DALI

A GPU-accelerated library for loading and preprocessing image, video and audio data to speed up deep learning training and inference.

Stars
5,791
Forks
691
Open issues
222
Last commit
23 hours ago

What is it?

NVIDIA DALI (Data Loading Library) moves data loading and preprocessing for deep learning off the CPU and onto the GPU. Pipelines cover steps such as decoding, cropping, resizing and other augmentations for image, video and audio data, and the built-in execution engine handles prefetching, parallel execution and batching.

Pipelines are written with a functional Python API and can be used as a drop-in replacement for the data loaders and iterators in TensorFlow, PyTorch, PaddlePaddle and JAX. The library reads formats including LMDB, RecordIO, TFRecord, COCO, JPEG, JPEG 2000, WAV, FLAC, OGG, H.264, VP9 and HEVC, and it can read directly from storage into GPU memory with GPUDirect Storage.

DALI also integrates with NVIDIA Triton Inference Server through a dedicated backend, and it supports custom operators for project-specific processing steps.

Key features

  • 01Functional Python API for building data processing pipelines.
  • 02Runs decoding and augmentation on CPU or GPU, with multi-GPU scaling.
  • 03Reads many formats including JPEG, TFRecord, COCO, WAV and H.264.
  • 04Works as a replacement for data loaders in TensorFlow, PyTorch, PaddlePaddle and JAX.
  • 05Supports custom operators and GPUDirect Storage.

Use cases

  • Removing a CPU bottleneck in image classification or object detection training.
  • Running the same preprocessing pipeline across TensorFlow and PyTorch projects.
  • Serving preprocessing alongside models on Triton Inference Server.
  • Loading and augmenting audio or video datasets for speech and vision models.

Quick start

  1. 1

    Install the latest DALI release for CUDA 12 with pip

    pip install nvidia-dali-cuda120
  2. 2

    Ensure an NVIDIA driver and CUDA Toolkit supporting CUDA 12 are installed

  3. 3

    Follow the Getting Started guide in the documentation

Things to know

  • Requires an NVIDIA GPU with a compatible driver and CUDA Toolkit.
  • Other installation paths and older CUDA versions need the separate Installation Guide.

In collections

Topics

FAQ

What is DALI?
A GPU-accelerated library for loading and preprocessing image, video and audio data to speed up deep learning training and inference. NVIDIA DALI (Data Loading Library) moves data loading and preprocessing for deep learning off the CPU and onto the GPU. Pipelines cover steps such as decoding, cropping, resizing and other augmentations for image, video and audio data, and the built-in execution engine handles prefetching, parallel execution and batching.
Is DALI free to use? What license does it have?
DALI is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is DALI still maintained?
Actively maintained. The last commit to DALI was on Nov 6, 2026.
What can I use DALI for?
Removing a CPU bottleneck in image classification or object detection training. Running the same preprocessing pipeline across TensorFlow and PyTorch projects. Serving preprocessing alongside models on Triton Inference Server. Loading and augmenting audio or video datasets for speech and vision models.
How do I install DALI?
Install the latest DALI release for CUDA 12 with pip: pip install nvidia-dali-cuda120 Ensure an NVIDIA driver and CUDA Toolkit supporting CUDA 12 are installed Follow the Getting Started guide in the documentation
Where can I get DALI?
The source code and installation instructions are on GitHub: https://github.com/NVIDIA/DALI

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects