加速MiniMax-H3(阅读时间12分钟)

TLDR AI 工具

摘要

本文基准测试了MiniMax-H3视频生成在8×H200 GPU上使用SGLang Diffusion的加速效果,通过SSIM衡量质量,最高实现6.24倍速度提升。

一项针对MiniMax-H3视频生成在8×H200 GPU上的详细基准测试表明,SGLang Diffusion可实现最高1.95倍的无损加速,结合步骤复用与稀疏注意力机制后,加速比可达6.24倍。
查看原文
查看缓存全文

缓存时间: 2026/08/28 15:55

# MiniMax-H3 在 8×H200 上的表现:无损速度提升 1.95×,在 SSIM 0.76–0.91 范围内最高可达 6.24× 来源:https://www.lmsys.org/blog/2026-08-27-minimax-h3-h200 ## 概要 我们在 8×NVIDIA H200 上使用 SGLang Diffusion (https://github.com/sgl-project/sglang) 对 MiniMax-H3 (https://github.com/MiniMax-AI) 的视频生成性能进行了基准测试。在六种工作负载中,固定了提示词、随机种子、分辨率、帧率和去噪步数。 - **SGLang 的密集无损路径比 Diffusers 快 1.85–1.95×,且无近似**:相同的去噪计算,在更快的运行时上执行。 - **结合步长重用和稀疏注意力,速度最高可达 6.24×,平均 SSIM 为 0.76–0.91**。测试的最快配置,SubBlock 0.80 + Cache-DiT stride,在 5 秒/10 秒 T2VA 上达到 **5.06×/5.72×**,在 FL2VA 上达到 **5.86×/6.24×**。代价并非均匀:FL2VA 在此配置下 SSIM 保持在 0.85–0.91,而 T2VA 则降至 0.76–0.78。 - **若以质量优先作为默认选择,请使用 Cache-DiT**(最高达 2.99×,平均 SSIM 0.90–0.92)。若追求平衡折衷,**SubBlock 0.75 + Cache-DiT stride** 在 SSIM 0.79–0.90 下可实现 4.90–5.93× 的加速。 - 增益来源于三个可组合的层次:**融合内核**(在单个非 GEMM 站点的隔离微基准测试中达到 2.00–12.16×——非端到端累加)、**步长重用**(Cache-DiT 跳过冗余的去噪步骤)以及 **SubBlock 稀疏注意力**(NVIDIA 的块稀疏前向计算,降低了实际执行步骤的成本)。 **范围**。此对比涵盖了 SGLang Diffusion 的三种加速旋钮。它支持更多有损路径,但*未包含*本次运行——包括量化和渐进式分辨率。因此,这里的数字是可用范围的一个切片,而非其上限。以下所有数据均为实测,非预测;末尾的演示片段可让您自行判断质量代价。 **硬件**:8× NVIDIA H200 (141 GB) **工作负载**:MiniMax-H3 · 1344×768 · 24 FPS · 50 去噪步 · 5 秒和 10 秒输出 **并行模式**:所有模式使用 8 GPU;Diffusers 使用 CP8,SGLang 使用 SP/Ulysses 度数为 8 **版本**:SGLang `v0.5.18` (`d90318b3e2`) **测试日期**:2026-08-18 --- ## 背景 虽然 SGLang Diffusion 已为 MiniMax-H3 提供了快速的无损路径,但社区长期以来一直追求更快的*有损*高质量视频生成。基于其长期以来用于有损加速的多变旋钮,SGLang Diffusion 在过去几周一直积极开发;本文首次报告了这些旋钮的实际效果。 视频扩散主要受两项成本支配:去噪循环运行相同的 Transformer 数十次,而每一步的大部分预算都消耗在对超长 token 序列的注意力计算上。一个 5 秒、1344×768、24 FPS、50 去噪步的片段已远超单 GPU 的实用范围,因此问题不在于是否并行,而在于能避免多少剩余工作。三种加速机制从不同方向攻击该问题,并且它们可以组合: - **融合内核**降低每一步的固定成本,而不改变其数学原理。 - **Cache-DiT** 在去噪步骤之间复用结果,使某些步骤根本不运行。 - **SubBlock 稀疏注意力**通过跳过贡献低于阈值的注意力块,降低了实际执行步骤的成本。 第一种是无损的。后两者在相似度与速度之间进行权衡,这就是为什么本文中的每个数字都报告了相对于无损基线的 SSIM 值。 ## 一览 答案取决于基线。在匹配的 Diffusers 情况下,SGLang 的密集无损路径在两个任务和两个时长上都已快约 2 倍。Cache-DiT 在去噪步骤之间复用工作,而 SubBlock 稀疏注意力降低了仍需运行步骤的成本。它们共同构成了此矩阵中最快的路径。 若需以质量优先的加速默认配置,请使用 **Cache-DiT conservative 或 Cache-DiT stride**,不启用 SubBlock。若需平衡的速度/质量折衷,请使用 **SubBlock 0.75 + Cache-DiT stride**,在 5 秒时提供 4.90–5.64× 加速,在 10 秒时提供 5.44–5.93× 加速。 下方图表汇总了基准测试表。 ## MiniMax-H3 H200 延迟对比 MiniMax-H3 H200 加速比对比 ## 详细结果 本文中的每个配置均可通过 SGLang 的 MiniMax-H3 食谱页面 (https://docs.sglang.ai/cookbook/diffusion/MiniMax/MiniMax-H3) 进行复现,其中包含每种模式的精确启动参数。我们报告生成端的推理时间;服务器启动、预热、HTTP 轮询和 MP4 下载时间已排除。对于每个任务和时长,使用三个不同的提示词评估延迟和 SSIM。加速比是相对于匹配的 Diffusers 情况测量的。SSIM 是在 YUV420 格式下,针对匹配的 SGLang 无损视频计算所有帧的平均值。 ### T2VA 模式 | | 5 秒 中位数/加速比 | 10 秒 中位数/加速比 | 5 秒 平均 SSIM | 10 秒 平均 SSIM | |---|---|---|---|---| | Diffusers | 74.34 s / 1.00× | 207.71 s / 1.00× | — | — | | SGLang 无损 | 39.67 s / 1.87× | 112.44 s / 1.85× | 1.0000 | 1.0000 | | Cache-DiT conservative | 28.02 s / 2.65× | 78.28 s / 2.65× | 0.8986 | 0.9179 | | SubBlock 0.75 | 30.90 s / 2.41× | 77.12 s / 2.69× | 0.8006 | 0.8301 | | SubBlock 0.75 + Cache-DiT conservative | 21.41 s / 3.47× | 57.48 s / 3.61× | 0.7936 | 0.8288 | | Cache-DiT stride | 18.13 s / 4.10× | 52.07 s / 3.99× | 0.8037 | 0.8078 | | SubBlock 0.75 + Cache-DiT stride | 15.16 s / 4.90× | 38.21 s / 5.44× | 0.7713 | 0.7834 | | SubBlock 0.80 | 29.49 s / 2.52× | 72.85 s / 2.85× | 0.7858 | 0.8193 | | **SubBlock 0.80 + Cache-DiT stride** | **14.68 s / 5.06×** | **36.29 s / 5.72×** | **0.7584** | **0.7765** | ### FL2VA 模式 | | 5 秒 中位数/加速比 | 10 秒 中位数/加速比 | 5 秒 平均 SSIM | 10 秒 平均 SSIM | |---|---|---|---|---| | Diffusers | 80.44 s / 1.00× | 217.31 s / 1.00× | — | — | | SGLang 无损 | 41.31 s / 1.95× | 114.02 s / 1.91× | 1.0000 | 1.0000 | | Cache-DiT conservative | 26.90 s / 2.99× | 78.24 s / 2.78× | 0.9389 | 0.9771 | | SubBlock 0.75 | 31.27 s / 2.57× | 76.95 s / 2.82× | 0.8946 | 0.9385 | | SubBlock 0.75 + Cache-DiT conservative | 20.64 s / 3.90× | 56.39 s / 3.85× | 0.8924 | 0.9414 | | SubBlock 0.75 + SageAttention | 30.64 s / 2.63× | 74.42 s / 2.92× | 0.8827 | 0.9219 | | Cache-DiT stride | 18.02 s / 4.46× | 51.31 s / 4.24× | 0.8903 | 0.9248 | | SubBlock 0.75 + Cache-DiT stride | 14.27 s / 5.64× | 36.62 s / 5.93× | 0.8629 | 0.9202 | | SubBlock 0.80 | 29.74 s / 2.71× | 72.44 s / 3.00× | 0.8837 | 0.9350 | | **SubBlock 0.80 + Cache-DiT stride** | **13.73 s / 5.86×** | **34.80 s / 6.24×** | **0.8498** | **0.9144** | ### 关键要点 - **SGLang 的密集路径是第一个简单的胜利**。在两个任务和时长上,当工作负载保持不变时,它比 Diffusers 提供了 1.85–1.95× 的加速。 - **SubBlock 0.75 + Cache-DiT stride 是平衡配置**。它在 5 秒时提供 4.90–5.64× 加速,在 10 秒时提供 5.44–5.93× 加速,同时保持了良好的输出质量。 - **Stride 缓存贡献了最大的吞吐量增益**。它单独达到 3.99–4.46×,而 conservative 配置为 2.65–2.99×。 - **FL2VA 从缓存 + 稀疏组合中受益略多**。最快的 FL2VA 案例达到 5.86×/6.24×,而 T2VA 为 5.06×/5.72×。 - **速度与质量的权衡很明确**。Conservative Cache-DiT 保留了 0.8986–0.9771 的 SSIM;而激进的 0.80 + stride 配置则牺牲了部分该余量以换取最低延迟。 ## MiniMax-H3 H200 速度-质量权衡与突出配置 ## 速度提升的来源 三种机制驱动了配置级别的增益。 **融合内核**降低了实际执行步骤的每一步成本。H3 路径融合了索引 AdaLN 更新、门控残差、SwiGLU 激活和带有 3D RoPE 的 QK RMSNorm,减少了中间张量、内存流量和内核启动。下一节报告这些隔离的内核测量;它们是每一步实现的一部分,而 Cache-DiT 和 SubBlock 决定了该实现中有多少部分会被执行。 **Cache-DiT** 将一个 DBCache 上下文附加到 MiniMax-H3 的共享 DiT 块堆栈。在预热步骤之后,它评估配置的边界块,并将归一化残差变化与先前缓存状态进行比较。如果变化保持在阈值以下并且连续缓存限制允许,中间块将重用其缓存结果;否则堆栈将被重新计算并刷新缓存。所有缓存模式使用 `Fn=1`,`Bn=0`,以及四个预热步骤: - conservative:共享 packed-stack RDT `0.04`,最大连续缓存步骤 `1`; - stride:共享 packed-stack RDT `0.08`,最大连续缓存步骤 `3`。 MiniMax-H3 有一个 `MiniMaxH3DiTModel`,其块堆栈承载打包的视频和音频 token。因此 Cache-DiT 为整个打包堆栈做出一个共享决策;它不维护独立的视频和音频缓存。工作者记录一个组合的 Cache-DiT 步骤列表,跟踪图例遵循该执行模型。 **SubBlock 稀疏注意力**减少了计算步骤中读取的 KV 块。它使用 `n_k=n_q=4`;前十个去噪步骤使用密集注意力,之后启用 SubBlock。最小序列长度为 `4096`。矩阵测试了稀疏度 `0.75` 和 `0.80`;后者更快,但在几个 T2VA 案例上 SSIM 更低。聚合配置结果显示了端到端的配置行为;它们没有隔离内核时间或提供每一步的成本细分。 下面的跟踪是请求级别的执行跟踪,而非算子计时测量。 ### 一个测量的 49 步跟踪 工作负载配置为 50 个推理步骤。由于 sigma 调度包含两个区间端点,去噪循环执行 49 次模型评估(`len(sigmas) - 1`);“49 步跟踪”指的是这些模型评估。为使执行模式具体化,一个 5 秒 T2VA 请求在六种配置下运行:无损、Cache-DiT conservative、SubBlock 0.75、SubBlock 0.75 + conservative Cache-DiT、Cache-DiT stride 和 SubBlock 0.80 + stride。工作者记录了每个请求的实际 `cached_steps` 列表。由于视频和音频 token 共享一个打包的 H3 块堆栈,缓存命中会重用组合输出;在此路径中没有单独的“视频已缓存,音频已计算”状态。SubBlock 行中的蓝色单元格标记了在前十个去噪步骤之后使用稀疏注意力的计算步骤。 真实的 49 步 MiniMax-H3 H200 执行跟踪 跟踪运行时间为:37.78 秒(无损),26.82 秒(Cache-DiT conservative),29.97 秒(SubBlock 0.75),22.18 秒(SubBlock 0.75 + conservative Cache-DiT),17.23 秒(Cache-DiT stride),以及 14.34 秒(SubBlock 0.80 + stride)。这些数字标识了跟踪运行;它们并非取代三个提示词的聚合中位数。 --- ## 内核层 缓存决定了运行多少去噪步骤;内核决定了每个计算步骤的速度。MiniMax-H3 将视频和音频 token 打包到一个序列中,因此非 GEMM 路径始终受益于相同的基本原理:更少的内存流量、更少的中间张量和更少的内核启动。AdaLN 调制和门控残差通过 token 索引查找参数,并在一次传递中更新激活。SwiGLU 直接在融合的 `gate_up` 缓冲区上操作。QK RMSNorm 和 3D RoPE 融合到一个内核中,而非作为单独的即时操作运行。 下表使用 5 秒 T2VA 请求在 1344×768×124 帧下的真实每秩形状:SP/Ulysses-8 填充后 4,722 行,隐藏大小 5,376,56 个注意力头,头维度 128,RoPE 维度 96,以及 BF16 输入。每个数字是 10 轮(每轮 20 次调用)中每次调用 CUDA 事件时间的中位数。基线是对应的即时组合。 MiniMax-H3 H200 融合内核加速比 | 算子 | 即时组合 | SGLang 内核 | 加速比 | |---|---|---|---| | AdaLN 调制(索引 scale-shift) | 136.7 μs | 38.2 μs | 3.58× | | AdaLN 门控残差(索引) | 93.2 μs | 46.6 μs | 2.00× | | SwiGLU 激活(原地) | 364.5 μs | 105.2 μs | 3.46× | | QK RMSNorm | 334.0 μs | 76.9 μs | 4.35× | | QK RMSNorm + 3D RoPE(一个内核) | 1335.6 μs | 109.8 μs | 12.16× | 这些是隔离站点的微基准测试,而非可累加的端到端延迟节省。融合的 QK-Norm + RoPE 结果使用了 main 分支上可用的精确舍入路径(`round_norm_before_rope=True`)。 --- ## SubBlock 稀疏注意力工作原理 SubBlock 是一种无需训练的块稀疏注意力路由器。它将序列分成 64 个 token 的查询和键块,然后将每个块在两端分成四个 16 个 token 的子块(`n_q=n_k=4`)。一个轻量级的池化和 log-sum-exp 分数为每个查询块和每个头估算每个键块的未归一化 softmax 质量。路由器保留得分最高的键块,并将它们的索引传递给块稀疏注意力内核;完整的注意力矩阵从未被实例化。`sparsity` 值是被允许丢弃的键块的比例,而不是保留的比例。因此 `sparsity=0.75` 大约保留每个查询块 25% 的键块。更激进的 `0.80` 设置更快,但具有更大的近似误差预算,这与在最激进行中观察到的较低 SSIM 一致。 下方的曲线显示了分数分布;垂直线显示了两个显示预算下每行路由截止值的中位数。这里包含了 `sparsity=0.50` 作为诊断参考;基准测试配置使用 `0.75` 和 `0.80`。由于路由器为每个查询块和头独立排序键块,`sparsity=0.50` 和 `0.75` 分别保留了该行可用键块的大约前一半和前四分之一,并受 8 块预算取整的影响。在这些工作负载中,`0.75` 预算保留了大部分行内中位数以上的分数质量,同时将选择集中在高分尾部。 SubBlock 分数分布和截止带 稀疏路径仅在内核支持的、长的、非因果 DiT 注意力调用中启用:BF16 输入,头维度 128,序列长度至少 4096 个 token。前十个去噪步骤使用密集注意力;短片段、token 精炼器和不受支持的调用使用密集回退。在 H200/SM90 上,所选的 64×64 路由计划由 SGLang 的 CuTe 块稀疏 FlashAttention 内核执行。 --- ## 演示 演示集包含每个选定提示词的四种模式: - **提示词 1** · T2VA · 5 秒 · 三只猫携带着黄铜乐器,在一位熟睡的主人旁边演奏; - **提示词 2** · T2VA · 10 秒 · 夜雨中的赛博朋克城市; - **提示词 3** · FL2VA · 5 秒 · 粘土狐狸续集。 四种模式是 SGLang 无损、Cache-DiT conservative、SubBlock 0.75 + Cache-DiT stride 和 SubBlock 0.80 + Cache-DiT stride。文件名编码了提示词、任务、模式和时长;SVG 图位于同一文件夹中。 **提示词 1 · T2VA · 5 秒** SubBlock 0.75 + Cache-DiT stride SubBlock 0.80 + Cache-DiT stride **提示词 2 · T2VA · 10 秒** SubBlock 0.75 + Cache-DiT stride SubBlock 0.80 + Cache-DiT stride **提示词 3 · FL2VA · 5 秒** SubBlock 0.75 + Cache-DiT stride SubBlock 0.80 + Cache-DiT stride 提示词 1 · 完整提示词 ``` integrated_multimodal_description: [镜头1] 实拍、异想天开的电影感,中景宽镜头框住夜晚一间昏暗的卧室,主人在被子下熟睡。卧室门打开,三只猫排成一列进入,各自携带着一个小小的黄铜乐器。镜头以小幅侧向平移和慢速跟随,猫们在床边行进并同步演奏一段短促、活泼的现场铜管曲调;熟睡的主人微微动了一下但未醒来。猫们以一个干脆利落的收尾结束演奏,一起转身,迅速鱼贯退出门外,最后一只猫的尾巴消失在画面中。无人物说话,也听不到人声。 overall_soundscape: 安静的夜晚房间环境音,主人平稳的呼吸声,地板上柔软的脚步声,微弱的门吱呀声,以及队列经过时轻微的被褥摩擦声。 non_diegetic_music: 无 ``` 提示词 2 · 完整提示词 ``` integrated_multimodal_description: [镜头1] 实拍、电影感,宽广的建立镜头框住夜晚的一个未来主义赛博朋克城市,雨下得很大。 ```

相似文章

介绍 fal 推出的 H3 Max(5分钟阅读)

TLDR AI

H3 Max 是 MiniMax H3 的后训练版本,专为最大速度优化。它在视频质量、提示理解和美学方面的人类偏好评估中排名第一,同时生成视频的速度比官方端点快多达35倍。

MiniMax H3(10分钟阅读)

TLDR AI

MiniMax 发布 H3,这是一款开放的多模态生成模型,支持文本、图像、视频和音频,可生成最长 15 秒的 2K 视频并带有原生立体声,同时计划开源模型权重。

在TensorSharp中成功运行MiniMax H3视频生成

Reddit r/LocalLLaMA

一位开发者已将MiniMax H3视频生成集成到TensorSharp中,这是一个本地推理引擎,支持图像到视频生成,并突出了LLM、多模态和视频推理在单一运行时中的融合。