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"를 지원합니다. \n## Who it's for

이미지, 비디오, 오디오 데이터를 다루는 딥러닝 실무자 및 연구원들이 PyTorch, TensorFlow, JAX, and PaddlePaddle과 같은 프레임워크를 사용하여 입력 파이프라인을 가속화하여 GPU 활용도를 최대화하고자 할 때 적합합니다.

Highlights

  • Multi-format support: 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: 개발자가 커스텀 파이프라인- 性能- 연산자(operators)를 생성할 수 있습니다.

  • Triton integration: NVIDIA Triton Inference Server와 쉽게 통합됩니다.