xdit-project/xDiT

xDiT: A Scalable Inference Engine for Diffusion Transformers (DiTs) with Massive Parallelism

해결하는 문제

xDiT는 Diffusion Transformers(DiTs)의 계산 병목 현상을 해결합니다. Attention 메커니즘의 요구 사항은 입력 컨텍스트 길이에 따라 제곱으로 증가하므로, 단일 GPU에서 실시간 고품질 이미지 및 비디오 생성이 어렵고 확장 가능한 다중 GPU 및 다중 머신 배포가 필요합니다.

작동 방식

xDiT는 여러 병렬화 및 가속화 전략을 구현한 추론 엔진입니다.

  • 병렬 추론: 시퀀스 병렬(USP), 시퀀스 수준 파이프라인 병렬(PipeFusion), 데이터 병렬, CFG 병렬(Split Batch)을 결합한 하이브리드 접근 방식을 사용하여 하드웨어 간 통신을 최적화합니다.
  • 캐시 가속: TeaCache 및 DiTFastAttn과 같은 방법을 통합하여 확산 단계 간의 계산 중복성을 활용합니다.
  • 계산 가속: 커널 가속, torch.compile, onediff를 활용하여 단일 GPU 성능을 향상시킵니다.
  • Attention 백엔드: FlashAttention(v2, v3, v4), cuDNN, AMD GPU용 AITER를 포함한 다양한 백엔드를 지원합니다.

대상 사용자

이미지 및 비디오 생성을 위해 대규모 Diffusion Transformers를 배포하는 개발자와 연구자로, 여러 컴퓨팅 장치를 사용하여 지연 시간을 줄이고 처리량을 높여야 하는 경우.

주요 특징

  • 광범위한 모델 지원: Flux, HunyuanVideo, Wan2.1, Stable Diffusion 3 등 다양한 DiTs와 호환됩니다.
  • 하이브리드 병렬 처리: 여러 병렬 방법을 결합하여 사용 가능한 장치 수에 맞출 수 있습니다.
  • 유연한 통합: huggingface/diffusers 라이브러리의 모델을 적용할 수 있는 래퍼를 제공합니다.
  • 다중 하드웨어 지원: NVIDIA GPU, AMD GPU(AITER 경유), Ascend NPU에 최적화되어 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • Dispatch