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