xdit-project/xDiT
xDiT: A Scalable Inference Engine for Diffusion Transformers (DiTs) with Massive Parallelism
解决的问题
xDiT 解决了 Diffusion Transformers (DiTs) 的计算瓶颈,其中注意力机制的需求随输入上下文长度呈二次方增长。这使得在单个 GPU 上难以进行实时高质量图像与视频生成,因此需要可扩展的多 GPU 与多机器部署。
运作方式
xDiT 是一个实现多种并行化与加速策略的推理引擎:
- 并行推理:采用混合方法,结合序列并行 (USP)、序列级流水线并行 (PipeFusion)、数据并行与 CFG 并行 (Split Batch),以优化跨硬件的通信。
- 缓存加速:整合 TeaCache 与 DiTFastAttn 等方法,利用扩散步骤之间的计算冗余。
- 计算加速:利用内核加速、
torch.compile与onediff提升单 GPU 性能。 - 注意力后端:支持多种后端,包括 FlashAttention (v2、v3、v4)、cuDNN 与适用于 AMD GPU 的 AITER。
适用对象
部署大规模 Diffusion Transformers 进行图像与视频生成的开发者与研究人员,需要降低延迟并通过多个计算设备提升吞吐量。
亮点
- 广泛模型支持:兼容于多种 DiTs,包括 Flux、HunyuanVideo、Wan2.1 与 Stable Diffusion 3。
- 混合并行:能结合多种并行方法,以匹配特定数量的可用设备。
- 灵活集成:提供包装器,可适配
huggingface/diffusers库中的模型。 - 多硬件支持:针对 NVIDIA GPU、AMD GPU (通过 AITER) 与 Ascend NPU 优化。
相关
- 项目
- 项目
- 项目
- Dispatch
- Dispatch