NVIDIA/DALI
A GPU-accelerated library containing highly optimized building blocks and an execution engine for data processing to accelerate deep learning training and inference applications.
What it solves
NVIDIA DALI (Data Loading Library) 消除深度学习流水线中的 CPU 瓶颈。在传统的工作流中,数据加载和预处理(如解码、裁剪和缩放)由 CPU 处理,这往往会限制训练和推理的整体性能和可扩展性。
How it works
DALI 将数据预处理任务卸载到 GPU。它使用一个专用的执行引擎,通过透明的预取、并行执行和批处理来最大化吞吐量。它提供了一个函数式的 Python API,并支持用于定义图的 "Pipeline mode" 和用于更灵活执行的 "Dynamic mode"。
Who it's for
处理图像、视频、音频数据并需要通过在 PyTorch, TensorFlow, JAX, and PaddlePaddle 等框架中加速其输入流水线来最大化 GPU 利用率的深度学习从业者和研究人员。
Highlights
- Multi-format support: 支持广泛的 formats 形式,包括 JPEG, JPEG 2000, WAV, FLAC, OGG, H.264, VP9, HEVC, LMDB, and TFRecord.
- Framework portable: 可作为 PyTorch, TensorFlow, JAX, and PaddlePaddle 中数据加载器的直接替换方案。
- Hardware acceleration: 支持 CPU 和 GPU 执行,并可在多多个 GPU 上进行扩展。
- Direct data path: 通过 GPUDirect Storage 实现存储与 GPU 内存之间的直接路径。
- Extensible: 允许开发者创建自定义的流水线 and 算子。
- Triton integration: 轻松地与 NVIDIA Triton Inference Server 集成。