DALI: 딥러닝 파이프라인의 CPU 병목 현상을 제거하는 GPU 가속 데이터 로딩 및 전처리 라이브러리

DALI: 딥러닝 파이프라인의 CPU 병목 현상을 제거하는 GPU 가속 데이터 로딩 및 전처리 라이브러리

해결하는 문제

NVIDIA DALI (Data Loading Library)는 딥러닝 파이프라인의 CPU 병목 현상을 제거합니다. 전통적인 워크플로우에서는 데이터 로딩 및 전처리(디코딩, 크로핑, 리사이징 등)를 CPU가 처리하며, 이는 종종 훈련 및 추론의 전체적인 성능과 확장성을 제한합니다.

작동 방식

DALI는 데이터 전처리 작업을 GPU로 오프로드합니다. 투명한 프리페칭(prefetching), 병렬 실행 및 배치 처리를 통해 처리량을 최대화하도록 설계된 전용 실행 엔진을 사용합니다. 기능적인 Python API를 제공하며, 정의된 그래프를 위한 "Pipeline mode"와 더 유연한 실행을 위한 "Dynamic mode"를 모두 지원합니다.

대상 사용자

이미지, 비디오, 오디오 데이터를 다루며 PyTorch, TensorFlow, JAX, PaddlePaddle과 같은 프레임워크 전반에서 입력 파이프라인을 가속화하여 GPU 활용도를 최대화해야 하는 딥러닝 실무자 및 연구자.

주요 특징

  • 다양한 포맷 지원: JPEG, JPEG 2000, WAV, FLAC, OGG, H.264, VP9, HEVC, LMDB, 및 TFRecord를 포함한 광범위한 포맷을 지원합니다.
  • 프레임워크 호환성: PyTorch, TensorFlow, JAX, 및 PaddlePaddle의 데이터 로더를 대체할 수 있는 드롭인(drop-in) 교체 방식으로 작동합니다.
  • 하드웨어 가속: CPU 및 GPU 실행을 모두 지원하며 여러 개의 GPU에 걸쳐 확장 가능합니다.
  • 직접 데이터 경로: GPUDirect Storage를 통해 스토리지와 GPU 메모리 간의 직접 경로를 활성화합니다.
  • 확장 가능성: 개발자가 커스텀 파이프라인과 연산자(operators)를 생성할 수 있도록 합니다.
  • Triton 통합: NVIDIA Triton Inference Server와 쉽게 통합됩니다.

Sources