xdit-project/xDiT
xDiT: A Scalable Inference Engine for Diffusion Transformers (DiTs) with Massive Parallelism
해결하는 문제
xDiT는 Diffusion Transformers (DiTs)의 높은 계산 비용과 주의 메커니즘의 2차 증가 문제를 해결합니다. 이로 인해 단일 GPU에서는 실시간 고품질 이미지 및 비디오 생성이 어려운 경우가 많습니다. xDiT는 이러한 대규모 모델을 여러 GPU 및 머신에 배포할 수 있게 하여 온라인 서비스의 성능 요구 사항을 충족시킵니다.
작동 방식
xDiT는 다양한 병렬화 및 가속 기술을 활용하는 확장 가능한 추론 엔진입니다.
- 병렬 추론: 하이브리드 방식으로 결합할 수 있는 여러 전략을 구현합니다:
- 통합 시퀀스 병렬 (USP): DeepSpeed-Ulysses와 Ring-Attention을 통합.
- PipeFusion: 확산 모델의 시간적 중복성을 활용한 시퀀스 수준의 파이프라인 병렬화.
- 데이터 병렬: 여러 프롬프트나 이미지에 걸쳐 병렬 처리.
- CFG 병렬: 분류기 없는 가이드를 위한 배치 분할 방식.
- 캐시 가속: TeaCache와 DiTFastAttn와 같은 기법을 통합하여 확산 단계 간의 중복성을 활용.
- 계산 가속: 커널 최적화,
torch.compile,onediff를 사용하여 단일 GPU 성능을 향상. - 주의 백엔드: FlashAttention, cuDNN, AMD GPU용 AITER 등 다양한 백엔드를 지원하며, 정밀도와 속도를 균형 있게 조절하는 하이브리드 주의 스케줄도 제공.
대상 사용자
이미지 및 비디오 생성을 위한 대규모 Diffusion Transformers를 배포하는 개발자 및 연구자에게 적합합니다. 다중 GPU 또는 다중 머신 환경을 활용하여 지연 시간을 줄이고 처리량을 증가시키고자 하는 분들께 추천합니다.
주요 특징
- 하이브리드 병렬화: 시퀀스, 파이프라인, 데이터, CFG 병렬화를 조합하여 특정 하드웨어에 최적화 가능.
- 광범위한 모델 지원: Flux, HunyuanVideo, Wan2.1, Stable Diffusion 3 등 다양한 DiT 모델과 호환.
- 하드웨어 유연성: NVIDIA 및 AMD GPU(ATEIR를 통해) 모두 최적화됨.
- 확장 가능한 API:
diffusers라이브러리의 모델을 쉽게 적응시킬 수 있는 간단한 래퍼 제공.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- Dispatch