xdit-project/xDiT

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

解决的问题

xDiT 解决了 Diffusion Transformers (DiTs) 的高计算成本和注意力机制的二次增长问题,这些问题常常使得在单个 GPU 上实现实时高质量图像和视频生成变得困难。xDiT 能够将这些大型模型部署到多个 GPU 和机器上,以满足在线服务的性能需求。

工作原理

xDiT 是一个可扩展的推理引擎,利用多种并行化和加速技术:

  • 并行推理: 实现了多种可混合使用的策略:
    • 统一序列并行 (USP): 结合 DeepSpeed-Ulysses 和 Ring-Attention。
    • PipeFusion: 一种基于扩散模型时间冗余性的序列级流水线并行。
    • 数据并行: 在多个提示或图像之间进行并行处理。
    • CFG 并行: 用于无分类器引导的分批处理方法。
  • 缓存加速: 集成 TeaCache 和 DiTFastAttn 等方法,利用扩散步骤之间的冗余性。
  • 计算加速: 使用内核优化、torch.compileonediff 提升单 GPU 性能。
  • 注意力后端: 支持多种后端(如 FlashAttention、cuDNN、AMD GPU 用的 AITER),并提供混合注意力调度以平衡精度与速度。

适用人群

专为需要在多 GPU 或多机器环境下降低延迟、提升吞吐量的图像和视频生成大型 Diffusion Transformers 开发者和研究人员设计。

主要亮点

  • 混合并行: 可组合序列、流水线、数据和 CFG 并行,以针对特定硬件进行优化。
  • 广泛模型支持: 兼容多种 DiTs,包括 Flux、HunyuanVideo、Wan2.1 和 Stable Diffusion 3。
  • 硬件灵活性: 针对 NVIDIA 和 AMD GPU(通过 AITER)进行优化。
  • 可扩展 API: 提供简单包装器,可轻松适配 diffusers 库中的模型。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • Dispatch