All Projects → NVIDIA → Dali

NVIDIA / Dali

Licence: other
A GPU-accelerated library containing highly optimized building blocks and an execution engine for data processing to accelerate deep learning training and inference applications.

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
Cuda
1817 projects
CMake
9771 projects
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Dali

Audio Pretrained Model
A collection of Audio and Speech pre-trained models.
Stars: ✭ 61 (-98.32%)
Mutual labels:  mxnet, audio-processing
Metalpetal
A GPU accelerated image and video processing framework built on Metal.
Stars: ✭ 907 (-74.97%)
Mutual labels:  gpu, image-processing
Netron
Visualizer for neural network, deep learning, and machine learning models
Stars: ✭ 17,193 (+374.42%)
Mutual labels:  mxnet, paddle
Albumentations
Fast image augmentation library and an easy-to-use wrapper around other libraries. Documentation: https://albumentations.ai/docs/ Paper about the library: https://www.mdpi.com/2078-2489/11/2/125
Stars: ✭ 9,353 (+158.08%)
Mutual labels:  image-processing, image-augmentation
Image-Rotation-and-Cropping-tensorflow
Image rotation and cropping out the black borders in TensorFlow
Stars: ✭ 14 (-99.61%)
Mutual labels:  data-augmentation, image-augmentation
Dlib
Allocators, I/O streams, math, geometry, image and audio processing for D
Stars: ✭ 182 (-94.98%)
Mutual labels:  image-processing, audio-processing
Halide
a language for fast, portable data-parallel computation
Stars: ✭ 4,722 (+30.3%)
Mutual labels:  gpu, image-processing
Spectrographic
Turn an image into sound whose spectrogram looks like the image.
Stars: ✭ 147 (-95.94%)
Mutual labels:  image-processing, audio-processing
Scaper
A library for soundscape synthesis and augmentation
Stars: ✭ 186 (-94.87%)
Mutual labels:  data-augmentation, audio-processing
Yolo Tf2
yolo(all versions) implementation in keras and tensorflow 2.4
Stars: ✭ 695 (-80.82%)
Mutual labels:  data-augmentation, image-processing
Introduction To Programming With Matlab
Coursera Course: Introduction to Programming 👩‍💻 with MATLAB ~by Vanderbilt University 🎓
Stars: ✭ 23 (-99.37%)
Mutual labels:  image-processing, audio-processing
XLearning-GPU
qihoo360 xlearning with GPU support; AI on Hadoop
Stars: ✭ 22 (-99.39%)
Mutual labels:  mxnet, gpu
Caer
High-performance Vision library in Python. Scale your research, not boilerplate.
Stars: ✭ 452 (-87.53%)
Mutual labels:  gpu, image-processing
Ivy
The templated deep learning framework, enabling framework-agnostic functions, layers and libraries.
Stars: ✭ 118 (-96.74%)
Mutual labels:  gpu, mxnet
audio degrader
Audio degradation toolbox in python, with a command-line tool. It is useful to apply controlled degradations to audio: e.g. data augmentation, evaluation in noisy conditions, etc.
Stars: ✭ 40 (-98.9%)
Mutual labels:  data-augmentation, audio-processing
Popsift
PopSift is an implementation of the SIFT algorithm in CUDA.
Stars: ✭ 259 (-92.85%)
Mutual labels:  gpu, image-processing
Simple Crop
全网唯一支持裁剪图片任意角度旋转、交互体验媲美原生客户端的全平台图片裁剪组件。
Stars: ✭ 294 (-91.89%)
Mutual labels:  image-processing
Statically
⚡️ The best free and fast CDN for images, CSS, JavaScript, and open source.
Stars: ✭ 299 (-91.75%)
Mutual labels:  image-processing
Dab
Data Augmentation by Backtranslation (DAB) ヽ( •_-)ᕗ
Stars: ✭ 294 (-91.89%)
Mutual labels:  data-augmentation
Autogluon
AutoGluon: AutoML for Text, Image, and Tabular Data
Stars: ✭ 3,920 (+8.17%)
Mutual labels:  mxnet

License Documentation

NVIDIA DALI

The NVIDIA Data Loading Library (DALI) is a library for data loading and pre-processing to accelerate deep learning applications. It provides a collection of highly optimized building blocks for loading and processing image, video and audio data. It can be used as a portable drop-in replacement for built in data loaders and data iterators in popular deep learning frameworks.

Deep learning applications require complex, multi-stage data processing pipelines that include loading, decoding, cropping, resizing, and many other augmentations. These data processing pipelines, which are currently executed on the CPU, have become a bottleneck, limiting the performance and scalability of training and inference.

DALI addresses the problem of the CPU bottleneck by offloading data preprocessing to the GPU. Additionally, DALI relies on its own execution engine, built to maximize the throughput of the input pipeline. Features such as prefetching, parallel execution, and batch processing are handled transparently for the user.

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. Data processing pipelines implemented using DALI are portable because they can easily be retargeted to TensorFlow, PyTorch, MXNet and PaddlePaddle.

DALI Diagram

Highlights

  • Easy-to-use functional style Python API.
  • Multiple data formats support - LMDB, RecordIO, TFRecord, COCO, JPEG, JPEG 2000, WAV, FLAC, OGG, H.264, VP9 and HEVC.
  • Portable across popular deep learning frameworks: TensorFlow, PyTorch, MXNet, PaddlePaddle.
  • Supports CPU and GPU execution.
  • Scalable across multiple GPUs.
  • Flexible graphs let developers create custom pipelines.
  • Extensible for user-specific needs with custom operators.
  • Accelerates image classification (ResNet-50), object detection (SSD) workloads as well as ASR models (Jasper, RNN-T).
  • Allows direct data path between storage and GPU memory with GPUDirect Storage.
  • Easy integration with NVIDIA Triton Inference Server with DALI TRITON Backend.
  • Open source.

DALI Roadmap

The following issue represents a high-level overview of our 2021 plan. You should be aware that this roadmap may change at any time and the order below does not reflect any type of priority.

We strongly encourage you to comment on our roadmap and provide us feedback on the mentioned GitHub issue.


Installing DALI

To install the latest DALI release for the latest CUDA version (11.x):

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist --upgrade nvidia-dali-cuda110

DALI comes preinstalled in the TensorFlow, PyTorch, and MXNet containers on NVIDIA GPU Cloud (versions 18.07 and later).

For other installation paths (TensorFlow plugin, older CUDA version, nightly and weekly builds, etc), please refer to the Installation Guide.

To build DALI from source, please refer to the Compilation Guide.


Examples and Tutorials

An introduction to DALI can be found in the Getting Started page.

More advanced examples can be found in the Examples and Tutorials page.

For an interactive version (Jupyter notebook) of the examples, go to the docs/examples directory.

Note: Select the Latest Release Documentation or the Nightly Release Documentation, which stays in sync with the main branch, depending on your version.


Additional Resources

  • GPU Technology Conference 2021; NVIDIA DALI: GPU-Powered Data Preprocessing by Krzysztof Łęcki and Michał Szołucha: event.
  • GPU Technology Conference 2020; Fast Data Pre-Processing with NVIDIA Data Loading Library (DALI); Albert Wolant, Joaquin Anton Guirao recording.
  • GPU Technology Conference 2019; Fast AI data pre-preprocessing with DALI; Janusz Lisiecki, Michał Zientkiewicz: slides, recording.
  • GPU Technology Conference 2019; Integration of DALI with TensorRT on Xavier; Josh Park and Anurag Dixit: slides, recording.
  • GPU Technology Conference 2018; Fast data pipeline for deep learning training, T. Gale, S. Layton and P. Trędak: slides, recording.
  • Developer Page.
  • Blog Posts.

Contributing to DALI

We welcome contributions to DALI. To contribute to DALI and make pull requests, follow the guidelines outlined in the Contributing document.

If you are looking for a task good for the start please check one from external contribution welcome label.

Reporting Problems, Asking Questions

We appreciate feedback, questions or bug reports. When you need help with the code, follow the process outlined in the Stack Overflow https://stackoverflow.com/help/mcve document. Ensure that the posted examples are:

  • minimal: Use as little code as possible that still produces the same problem.
  • complete: Provide all parts needed to reproduce the problem. Check if you can strip external dependency and still show the problem. The less time we spend on reproducing the problems, the more time we can dedicate to the fixes.
  • verifiable: Test the code you are about to provide, to make sure that it reproduces the problem. Remove all other problems that are not related to your request.

Acknowledgements

DALI was originally built with major contributions from Trevor Gale, Przemek Tredak, Simon Layton, Andrei Ivanov and Serge Panev.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].