Stable Diffusion 渲染农场:八卡出图为什么只用到一张卡
批量出图最经典的翻车:机器 8 卡,nvidia-smi 一看只有卡 0 在 90%,其余七张闲着。不是卡不行,是没做任务分发。
ComfyUI 默认单进程单卡
起多个实例,每张卡绑一个进程,前面挂队列:
CUDA_VISIBLE_DEVICES=0 python main.py --port 8188 --fp16-unet &
CUDA_VISIBLE_DEVICES=1 python main.py --port 8189 --fp16-unet &
CUDA_VISIBLE_DEVICES=2 python main.py --port 8190 --fp16-unet &
CUDA_VISIBLE_DEVICES=3 python main.py --port 8191 --fp16-unet &
上层用 FastAPI / Celery / Redis 队列把提示词均匀投到各端口,别让前端直连 8188。
模型别每张卡各读一份
- 模型文件放共享 NVMe,内存盘缓存 checkpoint
- 八卡同时读慢 SATA 盘,加载能占出图周期 40%
- ControlNet 每加一个多 2-4G 显存,管线里叠 4 个就爆 24G 卡
显存账本(SDXL 出图参考)
- 单图 1024² + 1 ControlNet:约 10-12G
- 加 2 ControlNet + 高清放大:18-22G,4090 临界
- 5090 32G:同管线余量更舒服,可开 –fp16-unet 再压一截
吞吐看总出图数,不看来单张延迟
多卡对“单图更快”几乎没帮助,对“一天出十万张”帮助巨大。批量任务先测 1000 张提示词的总耗时,再调实例数和批次,别盯单图秒数优化。
美国显卡云与多卡物理机:云数方舟 GPU 服务器