批量与队列:花显存的做法与不花显存的做法 / 全站资源搜索
搜索 更新 2026-10-02
概念 不随版本变化

批量与队列:花显存的做法与不花显存的做法

同样是一次跑多张,批量吃显存、队列不吃。混着用就得排查两遍。

「一次跑多张」有两种做法,代价完全不同,先分清自己用的是哪种,再谈调参。

两个不同的东西

做法怎么运作显存适合
批量张数同一批一起算,中间数据同时在显存里随张数增长同一组参数下比较多个种子的变化
队列一张算完再算下一张基本不变一次跑很多张、或者要跑很久

批量为什么吃显存

批量是把多张的中间数据同时放在显存里,张数翻倍,占用大致也翻倍。这就是为什么把批量从 4 改成 1,常常立刻就不报显存不足:不是问题消失了,是你把同时驻留的数据从 4 份减到 1 份。

常见误解
  • 以为批量越大出图越快
    批量确实能摊薄每个模型的加载开销,但它同时把峰值占用抬上去。卡在显存上限时,批量开大反而更慢,因为要反复在显存与内存之间倒腾。
  • 把队列当批量用
    队列是一张一张算,前后两张之间模型不用重新加载,这是它的好处;但它不会让单张更快,也不会让你在一批里做参数对比。

队列的价值

  • 可以把页面关掉去干别的,回来收结果
  • 单张失败不会带崩整批
  • 适合「参数定了,只换输入」的场景
  • 要跑很久的任务(视频、放大),队列比批量更稳

相关条目