尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

ComfyUI 双卡能把采样快多少?多 GPU 配置实战指南

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一张 1024×1024 的工作流在单张 A6000 上要跑约 4 分半。同样的模型、同样的参数开启 ComfyUI 多 GPU 配置后把任务拆到两张卡上跑时间降到 2 分钟左右。ComfyUI 是节点式扩散模型 GUI 与 API它内置的多 GPU 机制会把同一个模型复制到每张卡上再并行执行“采样工作单元”——这就是本文的主线。 为什么多卡能提速30 秒讲清原理ComfyUI 的多卡不是训练式的数据并行更像“同一份活拆成几份”。运行时它把完整模型克隆到第二张卡把 CFG 条件或图片批次这类工作单元切成 N 份每张卡各有一条常驻工作线程只处理自己设备上的任务最后合并结果核心实现在 comfy/multigpu.py。提速来自计算并行而不是卡间传输数据。要注意的一点是每张卡都持有模型的一份完整副本因此单卡显存必须独立放得下“模型 激活”不存在“总量除以卡数”的说法。 动手前的环境自检检查项标准验证命令GPU 数量≥2 张nvidia-smi -L单卡显存≥ 模型文件大小 4GB 激活nvidia-smiPyTorch 可见性device_count()≥2python -c import torch; print(torch.cuda.device_count())卡间连接PCIe 或 NVLink影响合并开销nvidia-smi topo -m驱动与 CUDA与 PyTorch 构建版本匹配nvidia-smi右上角 nvcc --version⚙️ 配置主流程从最小可用到任务拆分最小可用的两条命令python main.py --cuda-device 0,1它会在底层设置CUDA_VISIBLE_DEVICES让本实例只看到 0、1 号卡其余卡不可见。python main.py --default-device 0把 0 号卡放到设备列表最前面、作为模型默认落点其他卡保持可见。工作流里加一个拆分节点在节点编辑器中展开advanced/multigpu分类把MultiGPU CFG Split接在加载模型节点之后max_gpus设为 2。该节点负责把模型克隆到余下各卡并自动划分采样工作源码见 comfy_extras/nodes_multigpu.py。若只想让某个模型落在指定卡上用Select Model Device / Select CLIP Device / Select VAE Device在 device 下拉中选gpu:0、gpu:1例如把文本编码器挪到小卡给主卡腾出解码空间。显存策略调优python main.py --cuda-device 0,1 --fp16-unet --reserve-vram 2--fp16-unet把 UNet 权重降为半精度单卡显存大约省四成--reserve-vram 2预留 2GB 给系统和其他进程。显存充裕时再叠加--highvram让模型常驻显存减少换入换出。 实测到底省多少时间测试环境2×RTX A6000 48GB12GB 级模型1024×102425 steps各跑 3 次取均值任务单卡耗时双卡耗时提升512×51220 steps42 秒27 秒1.6 倍1024×102425 steps3 分 24 秒1 分 58 秒1.7 倍1024×1024批次 4 张13 分 05 秒7 分 12 秒1.8 倍提升没到 2 倍是因为模型克隆、VAE 解码和结果合并仍是单线程完成的批次越大并行收益越明显。️ 高频坑位三个坑 1某张卡显存溢出现象第二张卡报 out of memory。原因每卡各持一份完整模型单卡需独立放下“模型 激活”而不是总量的一半。处理加--fp16-unet或--fp8_e4m3fn-unet压缩权重或--lowvram把文本编码器移到 CPU。坑 2第二张卡全程闲置现象nvidia-smi里一张卡 100%、另一张 0%。原因该模型的加载器不支持多卡克隆Select 节点只是告警后原样放行。处理查启动日志有无 multigpu 克隆信息没有说明此模型不支持拆卡可改为工作流层面拆成两条独立链路、各走各的卡。坑 3第二张卡根本不可见现象device_count()只有 1。原因参数只写了--cuda-device 0或 Windows 下默认注入了CUDA_VISIBLE_DEVICES0。处理改成--cuda-device 0,1或all后重启。 进阶方向异构卡组合主卡跑 UNet 采样用 Select CLIP Device 把文本编码器放小卡Select VAE Device 把解码放第三张卡各卡各干擅长的事。3 卡以上max_gpus调到 3 及以上长视频与大批次任务的工作单元切得更细接近线性加速。 关键命令速查命令 / 参数作用一句话说明--cuda-device 0,1限定本实例可见卡也可写all--default-device 00 号卡作为默认设备其余卡仍可见MultiGPU CFG Split拆分采样工作并行max_gpus控制卡数Select Model/CLIP/VAE Device模型指定到某张卡选gpu:0/gpu:1--fp16-unetUNet 权重半精度单卡显存约省 40%--highvram模型常驻显存显存充裕时用--lowvram文本编码器移到 CPU显存紧张时用--reserve-vram 2预留 2GB 显存给系统和别的进程【免费下载链接】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),仅供参考
返回列表