You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Kaggle中用双GPU运行ComfyUI+Flux 1 dev且不超内存?

在Kaggle Notebook中用双GPU加速ComfyUI的Flux 1 dev推理

不要并行启动两个ComfyUI实例,这种方式会重复加载模型,直接触发内存不足。正确的做法是让单个ComfyUI实例利用双GPU做模型并行或阶段拆分,以下是具体实现方案:

1. 启用ComfyUI原生多GPU模型并行

ComfyUI内置了多GPU支持,只需在启动时添加对应参数即可自动拆分模型到两块GPU:

  • 启动命令添加参数:--multi-gpu --gpu-device-id 0,1
    • --multi-gpu:开启自动模型层拆分逻辑,将Flux的不同网络层分配到可用GPU上
    • --gpu-device-id 0,1:明确指定使用两块GPU(Kaggle的GPU设备ID通常为0和1)
  • 如果默认拆分效果不理想,可修改ComfyUI根目录下的config.py,调整multi_gpu相关配置,比如手动指定某些层的GPU分配优先级

2. 配合内存优化提升效率

为了避免内存溢出,同时最大化双GPU利用率,可搭配以下设置:

  • 启用模型量化:在ComfyUI的Flux模型加载节点中,勾选fp8bf16量化选项(Flux 1 dev支持低精度推理),大幅降低单GPU的显存占用
  • 清理后台冗余进程:执行!ps aux | grep python查看Kaggle Notebook中的后台进程,杀掉无关的Python进程释放内存
  • 调整推理批次:单GPU时若用批次1,双GPU可尝试批次2(需监控显存,若出现OOM则回落至批次1)

3. 手动阶段拆分(模型并行的替代方案)

如果自动模型并行效果不佳,可手动将工作流的不同阶段分配到不同GPU:

  • 在CLIP模型加载节点中,设置devicecuda:0,让文本编码阶段跑在第一块GPU
  • 在Flux UNet模型加载节点中,设置devicecuda:1,让图像生成的核心计算跑在第二块GPU
  • 这种方式让两块GPU同时处理工作流的不同环节,避免单GPU瓶颈

4. 验证双GPU是否生效

  • 执行!nvidia-smi命令,查看两块GPU的显存占用和GPU使用率,若两者均有稳定负载,说明双GPU已被利用
  • 对比单GPU与双GPU的单图生成耗时,通常能实现1.5-2倍的速度提升(具体取决于GPU规格和工作流复杂度)

内容的提问来源于stack exchange,提问作者Bram Fran

火山引擎 最新活动