Diffusers 文件
xDiT
並獲得增強的文件體驗
開始使用
xDiT
xDiT 是一個專為大規模並行部署擴散變換器(Diffusion Transformers, DiTs)而設計的推理引擎。xDiT 提供了一套針對擴散模型的高效並行方法,以及 GPU 核心加速功能。
xDiT 支援四種並行方法,包括 統一序列並行(Unified Sequence Parallelism)、PipeFusion、CFG 並行和資料並行。xDiT 中的四種並行方法可以混合配置,以最佳化通訊模式,從而最好地適應底層網路硬體。
與並行化正交的最佳化專注於加速單 GPU 效能。除了利用著名的注意力(Attention)最佳化庫外,我們還利用了 torch.compile 和 onediff 等編譯加速技術。
xDiT 的概覽如下所示。

pip install xfuser
以下是使用 xDiT 加速 Diffusers 模型推理的示例。
import torch
from diffusers import StableDiffusion3Pipeline
from xfuser import xFuserArgs, xDiTParallel
from xfuser.config import FlexibleArgumentParser
from xfuser.core.distributed import get_world_group
def main():
+ parser = FlexibleArgumentParser(description="xFuser Arguments")
+ args = xFuserArgs.add_cli_args(parser).parse_args()
+ engine_args = xFuserArgs.from_cli_args(args)
+ engine_config, input_config = engine_args.create_config()
local_rank = get_world_group().local_rank
pipe = StableDiffusion3Pipeline.from_pretrained(
pretrained_model_name_or_path=engine_config.model_config.model,
torch_dtype=torch.float16,
).to(f"cuda:{local_rank}")
# do anything you want with pipeline here
+ pipe = xDiTParallel(pipe, engine_config, input_config)
pipe(
height=input_config.height,
width=input_config.height,
prompt=input_config.prompt,
num_inference_steps=input_config.num_inference_steps,
output_type=input_config.output_type,
generator=torch.Generator(device="cuda").manual_seed(input_config.seed),
)
+ if input_config.output_type == "pil":
+ pipe.save("results", "stable_diffusion_3")
if __name__ == "__main__":
main()
如你所見,我們只需使用 xDiT 的 xFuserArgs 來獲取配置引數,並將這些引數與 Diffusers 庫中的管道物件一起傳遞給 xDiTParallel,即可完成 Diffusers 中特定管道的並行化。
xDiT 執行時引數可以在命令列中使用 -h
檢視,你可以參考這個用法示例瞭解更多詳情。
xDiT 需要使用 torchrun 啟動,以支援其多節點、多 GPU 的並行能力。例如,以下命令可用於 8-GPU 並行推理
torchrun --nproc_per_node=8 ./inference.py --model models/FLUX.1-dev --data_parallel_degree 2 --ulysses_degree 2 --ring_degree 2 --prompt "A snowy mountain" "A small dog" --num_inference_steps 50
支援的模型
xDiT 支援 Diffusers 模型的一個子集,例如 Flux.1、Stable Diffusion 3 等。最新支援的模型可以在這裡找到。
基準測試
我們在各種機器上測試了不同的模型,以下是一些基準測試資料。
Flux.1-schnell


Stable Diffusion 3


HunyuanDiT



更詳細的效能指標可以在我們的 github 頁面上找到。
參考
PipeFusion:用於擴散變換器模型推理的位移補丁管道並行
< > 在 GitHub 上更新