48GB Mac 跑 Qwen-Image-2.1:分阶段加载把峰值显存从 43.6GB 降到 19GB
nefayran · reddit · 2026-10-07
作者在 48GB M5 Pro Mac 上跑 Qwen-Image-2.1 时遇到内存爆炸:默认 diffusers 管线把三个模型(16.3GB 文本编码器 Qwen3-VL、13.3GB transformer、1.3GB VAE)同时驻留内存,1024px 下 VAE 解码还需约 11GB,进程峰值达 43.6GB、swap 增长 8GB 后被终止。
由于 Mac 的 CPU 与 GPU 共享同一内存,把空闲模型移到 CPU 并不能降低峰值。作者的解法是写了个小库 stageload:按管线阶段(encodeprompt、preparelatents、unpacklatents 的钩子)只加载当前阶段需要的模型,用完即释放,管线代码无需改动。
1024×1024、20 步、bfloat16 的实测结果:
- 峰值内存降至 19.0GB,全程无 swap;解码阶段仅 14.4GB
- 两次分阶段运行输出与 eager 完全一致(逐位相同)
- 去噪耗时 79 秒 vs eager 的 77.5 秒,几乎无性能代价
- 模型在阶段内加载约 13 秒,反而快于 eager 预载的 20 秒
代码 MIT 开源:pip install stageload,GitHub,附详细技术报告。该方案适用于任何在 Mac 上用 Python 跑多模型管线的场景。
「Infra」频道最新
- Datology 开源 Zephon:确定性流式 dataloader 解决 GPU 数量不一致难题 — josh_wills · 2026-10-07
- 两张老 V100 本地跑 321B GLM-5.3-Flash:开源 Project Maya 实测 40 token/s — lxfater · 2026-10-07
- 数据中心耗水耗电被夸大?铝厂一年用电等于整个波士顿 — csuwildcat · 2026-10-07
- Omarchy Linux 官方推出浏览器远程桌面插件 — juntao · 2026-10-07
- Intel CEO 确认将继续与马斯克 Terafab 合作造芯 — elonmusk · 2026-10-07
- Symmetrix-XL 开源发布:单 GPU 跑千万原子级 MACE 分子模拟 — CatAstro_Piyush · 2026-10-07