| 任务类型 | 是否适合多卡 | 常用并行方式 |
|---|---|---|
| 文生图(单张推理) | 一般不适合 | 不推荐 |
| 批量出图(batch) | ✅ 非常适合 | 数据并行 |
| 高分辨率大图 | ✅ | 模型并行 / 切分 |
| 模型微调(LoRA / DreamBooth) | ✅ | 数据并行 / ZeRO |
| 视频 / 长序列 | ✅ | 序列并行 |
思路:
每张卡放一份完整模型,不同 prompt / 不同 batch 分到不同卡。
model = torch.nn.DataParallel(model)或更好用:
model = model.to("cuda:0")torch.multiprocessingacceleratediffusers + accelerateaccelerateaccelerate launch infer.pyfrom accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)✅ 自动:
text_encoder.to(0)
unet.to(1)
vae.to(2)✅ DeepSpeed + ZeRO
accelerate config
accelerate launch train.py| ZeRO 级别 | 显存 | 速度 |
|---|---|---|
| ZeRO-2 | 中 | 快 |
| ZeRO-3 | 低 | 稍慢 |
batch_sizeprompts = split(prompts, num_gpus)❌ 多卡一定快
✅ 单图推理多卡常更慢
❌ 所有阶段都要并行
✅ VAE / 后处理常是瓶颈
❌ 显存加起来用
| 你的情况 | 建议 |
|---|---|
| 只是出图 | 多进程,不并模型 |
| 训练 LoRA | accelerate + ZeRO |
| SDXL 爆显存 | 模型并行 |
| 服务部署 | 多卡 = 多实例 |
如果你愿意,可以告诉我:
我可以直接给你一套可跑的配置。