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