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.compile與onediff提升單一 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