Speed up image classification training by offloading resize, crop, and decode steps to the GPU instead of the CPU.
Load and preprocess video datasets for action recognition models without a CPU bottleneck slowing things down.
Replace the default data loader in a PyTorch or TensorFlow training script to make GPU utilization jump from 60% to near 100%.
Build a custom audio preprocessing pipeline for speech recognition models using DALI's extensible Python API.
| nvidia/dali | cnr-isti-vclab/meshlab | tencent/libpag | |
|---|---|---|---|
| Stars | 5,691 | 5,675 | 5,672 |
| Language | C++ | C++ | C++ |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 3/5 | 3/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Install via pip (nvidia-dali package) or use NVIDIA's official PyTorch/TensorFlow container images where it comes pre-bundled. Requires a CUDA-capable NVIDIA GPU.
DALI, the NVIDIA Data Loading Library, is a tool for speeding up the stage of AI model training that happens before the model itself sees any data. When training an AI system to recognize images or understand audio, a large amount of work goes into preparing the raw data first: loading files from disk, decoding compressed images or audio, cropping, resizing, normalizing values, and applying random variations to make the model more general. Traditionally this preparation runs on the CPU and often becomes the slowest step, leaving the GPU waiting. DALI moves that preparation work to the GPU, running the decoding and transformation steps there instead. It also handles tasks like loading data in advance before the current batch finishes processing, running multiple operations in parallel, and processing many samples at once. From the developer's perspective this machinery runs in the background without requiring extra code to manage. The library supports a wide range of file formats including common image types, video encoded with H.264 and other codecs, and audio formats like WAV, FLAC, and OGG. It connects to the three most widely used AI training frameworks, TensorFlow, PyTorch, and PaddlePaddle, and is designed to slot in as a drop-in replacement for the data loading code those frameworks already provide. On the code side, DALI offers a Python API where you define a pipeline by calling functions that describe the steps, and the library figures out how to run them efficiently. There is also a newer dynamic mode that looks more like ordinary Python loops. Custom processing steps can be added for cases the library does not cover out of the box. It is open source, installable via pip, and comes pre-bundled in the official NVIDIA container images for TensorFlow and PyTorch. The full README is longer than what was shown.
NVIDIA's GPU-accelerated data loading library that speeds up AI training by moving image, video, and audio preprocessing from CPU to GPU, plugs into PyTorch, TensorFlow, and PaddlePaddle as a drop-in replacement.
Mainly C++. The stack also includes C++, Python, CUDA.
Open source, free to use and modify. Check the repo for the exact license terms.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.