ComfyUI 多GPU配置:双卡环境下的设备分配与显存调优实践 ComfyUI 多GPU配置双卡环境下的设备分配与显存调优实践【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI深夜出图批次48 张图排队nvidia-smi里第二张卡利用率还是 0%——整批活被一张卡包圆了。这是 ComfyUI 多GPU配置 最常见的受挫形态卡够活没分。 多卡并行能做什么、不能做什么ComfyUI 的多卡支持走两条独立的线实例层面--cuda-device决定一个进程能看到哪些卡工作流层面MultiGPU CFG Split节点把扩散模型在每张卡上各克隆一份把采样工作单元一次采样中可切分的最小批次拆开并行执行。它能做到的是把同一次采样的工作分到两张卡上或把 UNet负责去噪的主干模型、CLIP文本编码器和 VAE负责潜空间与像素互转的编解码器分别固定到不同卡做不到的是把单个模型的权重张量切片到多卡也没有对整批工作流的自动调度。别期待训练集群那种线性加速它给的是一次排队内的并行。✅ 环境自检一份可勾选的清单硬件项全部通过再往下走软件项任何一条失败先修再继续nvidia-smi列出全部显卡且驱动版本正常显示nvidia-smi topo -m查看卡间连接等级NVLink PCIe 交换 芯片组桥接等级越低通信开销越明显python -c import torch; print(torch.cuda.device_count())的输出与物理卡数一致PyTorch 与本机 CUDA 驱动版本相互兼容目标模型权重能放进单卡显存大模型先估算一下权重体积️ 配置主线从最小可用到进阶的三级跳第一级把两张卡带上线python main.py --cuda-device 0,1两张卡对当前实例可见ComfyUI 会默认选其一作为工作卡。这是所有 GPU 分配策略的入口只做暴露不做分工。第二级显存参数与精度取舍python main.py --cuda-device 0,1 --default-device 1 --reserve-vram 2 --fp8_e4m3fn-unet--default-device固定主工作卡--reserve-vram给系统留余量fp8 权重存储把模型权重压缩到低精度能让大模型挤进 24GB。完整参数对照见 comfy/cli_args.py显存状况参数行为显存充裕--gpu-only所有模型常驻 GPU显存紧张--lowvram文本编码器改跑 CPU极度紧张--novram激进卸载速度最慢第三级工作流内按组件分配 切分工作单元双卡规格不一致时在节点编辑器里分配Select Model Device把去噪模型钉在大卡上Select CLIP Device、Select VAE Device把编码和解码放到另一张卡。需要并行采样时在采样器之前插入MultiGPU CFG Split并设置max_gpus。节点实现可看 comfy_extras/nodes_multigpu.py。 场景化调优批量出图。同一条工作流跑整批任务时单卡常见瓶颈是文本编码与解码排队。稳妥的做法主模型压强卡VAE 解码和预览走副卡两卡各干一段互不阻塞。大分辨率渲染。4K 图采样时激活值占用巨大此时分卡不是第一优先级--reserve-vram与 fp8 权重才是。双卡都是 24GB 仍放不下时可以拆成两个实例分别用--cuda-device 0和--cuda-device 1启动各跑一档分辨率用吞吐换显存。混合工作流。同一条流里既有视频大模型又有图像小模型时用Select Model Device按加载器分配大模型归 0 卡小模型归 1 卡避免两者互相挤占、反复卸载。 踩坑排查现象第二张卡利用率常年为 0只有主卡在跑。根因工作流里没有任何切分或设备选择节点--cuda-device只负责暴露卡不负责分工。处理给采样分支加MultiGPU CFG Split或显式绑定组件用nvidia-smi -l 1观察两卡利用率是否都脱离 0。现象跑切分节点后第二张卡报显存溢出。根因每张卡都持有完整的一份模型克隆单卡负载与单卡模式相同。处理降低每卡精度--fp8_e4m3fn-unet、给副卡加--vram-headroom余量或缩小批大小。现象双卡机器存的工作流拿到单卡机器打开后出现告警。根因Select ... Device里请求的设备号在当前机器不存在。处理这是设计好的回退——节点放行模型并只打日志不需要修重新选择本机存在的设备即可。现象两卡规格不同快的先跑完在那等慢的。根因工作单元按均分切但两卡吞吐不同。处理comfy/multigpu.py 的均衡逻辑支持按 relative_speed 比例分配当前调度侧尚未完整消费该比例短期靠对齐两卡批大小来缩小等待差。 收尾ComfyUI 多卡配置本质是哪张卡干哪段活的取舍先暴露卡再切分工作最后用精度参数做校准。参数细节直接跑python main.py --help节点用法翻一下源码注释再不行就到项目社区提问。【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考