Skip to content

[Feature Request] MiniMax-H3: precompute & cache AdaLN outputs to cut ~40% DiT VRAM (13B params) #1934

Description

@farawayso

Feature Summary

常驻显存从 ~66.3GB 降到 ~40.3GB(社区实测),净省 ~25GB,无画质损失。

Detailed Description

MiniMax-H3 的 33B Omni-Transformer 中,约 13B 参数(约 40% DiT)位于 AdaLN 分支(50 个 block,每个 adaln_proj 是 [96768, 2688],输入只有时间步嵌入 timestep embedding)。
这些投影的输入与序列内容无关,只依赖时间步。因此纯推理时可以:

  1. 采样开始前,用时间步 t 一次性算出各层 scale/shift;
  2. 缓存结果(仅 ~745MB);
  3. 丢弃 13B AdaLN 权重,后续采样步只保留主干 ~20B。
    预期收益:常驻显存从 ~66.3GB 降到 ~40.3GB(社区实测),净省 ~25GB,无画质损失。
    对 24GB 消费级卡的现实意义 / Why it matters
    在 24GB 显卡(如 RX 7900 XTX)上跑 MiniMax-H3,当前只能依赖 --stream-layers(权重驻 RAM、按段搬回显存)。而外接显卡坞(OCuLink/M.2 PCIe 4.0×4)的搬运带宽只有 ~7.9 GB/s,是独显内部带宽的 1/120,流式搬运成为主要性能损失。
    若能预计算并丢弃 AdaLN 权重,DiT 常驻从 20B 级进一步下降,更多场景可以 --eager-load 全常驻,从根上减少对流式的依赖,对低带宽外接坞尤其收益显著。
    已有同类实现(可参考)/ Prior art
  • SGLang #34650:--minimax-h3-adaln-online,从 checkpoint 按需重建 AdaLN 输出,单层流式读入,瞬时峰值仅 496MiB/层(而非 24.2GiB 全量)。bit-identical 输出。
  • ComfyUI 官方 H3 节点:已内置,40% 参数 → 查找表,无画质损失(官方文档明示)。
  • MLX 移植(Mac):AdaLN 预计算省 25.3GB,缓存仅 745MB(被替换权重的 1/35)。
  • 官方 README 亦明示:"AdaLN 调制输出可预计算并缓存,纯推理部署无需加载这约 13B 参数"。
    期望 / Ask
    希望在 stable-diffusion.cpp 的 MiniMax-H3 实现中加入 AdaLN 输出预计算/缓存能力(或至少评估可行性),使量化后模型在 24GB 级显卡上有更多 eager 全常驻的空间。
    相关环境:Windows / ROCm 10(gfx1100)与 Vulkan 后端。

Alternatives you considered

参考 / References

Additional context

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions