MiniMax-H3 在 8×H200 上基准测试:无损加速 1.95×,最高 6.24×(SSIM 0.76–0.91)
Blog MiniMax-H3 on 8×H200: 1.95× Lossless, Up to 6.24× at 0.76–0.91 SSIM We benchmarked MiniMax-H3 video generation on 8× NVIDIA H200 with SGLang Diffusion, holding prompts, seeds, resolution, frame rate, and denoising steps fixed across six workloads. - SGLang's dense, l... SGLang Diffusion Team, Cache-DiT Team, NVIDIA, Ant Group
SGLang Diffusion 团队在 8×NVIDIA H200 上对 MiniMax-H3 视频生成进行基准测试,其密集无损路径较 Diffusers 快 1.85–1.95×,无近似损失。
把视频生成加速的取舍量化成可复现配置,质量优先时 Cache-DiT 单独使用比叠加稀疏注意力更划算。
- 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 在该配置下保持 0.85–0.91 的 SSIM,而 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 能够实际处理的范围,因此问题不在于是否要并行化,而在于剩余的工作量中有多少是可以被省去的。
有三种加速手段从不同方向切入这一问题,并且它们可以叠加组合:
- 融合内核(Fused kernels)在不改变数学原理的前提下,削减每一步的固定开销。
- 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 的 SGLang cookbook 页面复现,该页面提供了每种模式对应的精确启动参数。
我们报告的是生成侧的推理时间;服务器启动、预热、HTTP 轮询以及 MP4 下载时间均不包含在内。对于每项任务和时长,延迟与 SSIM 均在三个不同的提示词下进行评估。加速倍数是相对于对应的 Diffusers 场景测得的。SSIM 是在 YUV420 格式下对所有帧计算,并与对应的 SGLang 无损视频进行对比。
T2VA
| 模式 | 5 秒中位数 / 加速倍数 | 10 秒中位数 / 加速倍数 | 5 秒平均 SSIM | 10 秒平均 SSIM |
|---|---|---|---|---|
| Diffusers | 74.34 秒 / 1.00× | 207.71 秒 / 1.00× | — | — |
| SGLang 无损 | 39.67 秒 / 1.87× | 112.44 秒 / 1.85× | 1.0000 | 1.0000 |
| Cache-DiT 保守模式 | 28.02 秒 / 2.65× | 78.28 秒 / 2.65× | 0.8986 | 0.9179 |
| SubBlock 0.75 | 30.90 秒 / 2.41× | 77.12 秒 / 2.69× | 0.8006 | 0.8301 |
| SubBlock 0.75 + Cache-DiT 保守模式 | 21.41 秒 / 3.47× | 57.48 秒 / 3.61× | 0.7936 | 0.8288 |
| Cache-DiT 步长 | 18.13 秒 / 4.10× | 52.07 秒 / 3.99× | 0.8037 | 0.8078 |
| SubBlock 0.75 + Cache-DiT 步长 | 15.16 秒 / 4.90× | 38.21 秒 / 5.44× | 0.7713 | 0.7834 |
| SubBlock 0.80 | 29.49 秒 / 2.52× | 72.85 秒 / 2.85× | 0.7858 | 0.8193 |
| SubBlock 0.80 + Cache-DiT stride | 14.68 秒 / 5.06× | 36.29 秒 / 5.72× | 0.7584 | 0.7765 |
FL2VA
| 模式 | 5 秒中位数 / 加速比 | 10 秒中位数 / 加速比 | 5 秒平均 SSIM | 10 秒平均 SSIM |
|---|---|---|---|---|
| Diffusers | 80.44 秒 / 1.00× | 217.31 秒 / 1.00× | — | — |
| SGLang 无损模式 | 41.31 秒 / 1.95× | 114.02 秒 / 1.91× | 1.0000 | 1.0000 |
| Cache-DiT 保守模式 | 26.90 秒 / 2.99× | 78.24 秒 / 2.78× | 0.9389 | 0.9771 |
| SubBlock 0.75 | 31.27 秒 / 2.57× | 76.95 秒 / 2.82× | 0.8946 | 0.9385 |
| SubBlock 0.75 + Cache-DiT 保守模式 | 20.64 秒 / 3.90× | 56.39 秒 / 3.85× | 0.8924 | 0.9414 |
| SubBlock 0.75 + SageAttention | 30.64 秒 / 2.63× | 74.42 秒 / 2.92× | 0.8827 | 0.9219 |
| Cache-DiT 步长 | 18.02 秒 / 4.46× | 51.31 秒 / 4.24× | 0.8903 | 0.9248 |
| SubBlock 0.75 + Cache-DiT 步长 | 14.27 秒 / 5.64× | 36.62 秒 / 5.93× | 0.8629 | 0.9202 |
| SubBlock 0.80 | 29.74 秒 / 2.71× | 72.44 秒 / 3.00× | 0.8837 | 0.9350 |
| SubBlock 0.80 + Cache-DiT 步长 | 13.73 秒 / 5.86× | 34.80 秒 / 6.24× | 0.8498 | 0.9144 |
核心要点
- SGLang 的密集路径是最容易获得的提升。 在保持工作负载不变的情况下,它在两种任务和时长上相比 Diffusers 都能带来 1.85–1.95× 的加速。
- SubBlock 0.75 + Cache-DiT 步长是均衡的方案。 它在保持良好输出质量的同时,在 5 秒任务上带来 4.90–5.64× 的加速,在 10 秒任务上带来 5.44–5.93× 的加速。
- 步长缓存带来的吞吐量提升最大。 它单独就能达到 3.99–4.46× 的加速,而保守方案只有 2.65–2.99×。
- FL2VA 从缓存 + 稀疏组合中获益略多。 FL2VA 最快的场景达到 5.86×/6.24×,而 T2VA 为 5.06×/5.72×。
- 速度与质量的权衡关系很清晰。 保守的 Cache-DiT 保留了 0.8986–0.9771 的 SSIM;激进的 0.80 + 步长方案则牺牲了部分这一余量,以换取最低延迟。
加速从何而来
三个机制共同驱动了 profile 层面的性能提升。
融合内核降低了每个仍需执行的步骤的开销。H3 路径将索引式 AdaLN 更新、门控残差、SwiGLU 激活以及带 3D RoPE 的 QK RMSNorm 融合在一起,减少了中间张量、内存流量和内核启动次数。下一节将报告这些独立的核测量结果;它们是逐步实现的一部分,而 Cache-DiT 和 SubBlock 则决定了该实现中有多少部分会被实际执行。
Cache-DiT将一个 DBCache 上下文挂接到 MiniMax-H3 的共享 DiT 块堆栈上。在预热步骤之后,它会评估配置的边界块,并将归一化残差变化与之前的缓存状态进行比较。如果变化保持在阈值以下且连续缓存限制允许,中间块就会复用其缓存结果;否则堆栈会被重新计算并刷新缓存。所有缓存模式均使用 Fn=1、Bn=0 以及四个预热步骤:
- 保守模式:共享打包堆栈 RDT
0.04,最大连续缓存步数1; - 跨步模式:共享打包堆栈 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 保守、SubBlock 0.75、SubBlock 0.75 + 保守 Cache-DiT、Cache-DiT stride,以及 SubBlock 0.80 + stride。工作节点记录了每个请求的实际 cached_steps 列表。由于视频和音频 token 共享一个打包的 H3 块栈,缓存命中会复用组合后的输出;在此路径中不存在独立的“视频已缓存、音频已计算”状态。SubBlock 行中的蓝色单元格标记了在前十步去噪之后使用稀疏注意力进行计算的计算步骤。
追踪运行耗时为 37.78 秒(无损)、26.82 秒(Cache-DiT 保守)、29.97 秒(SubBlock 0.75)、22.18 秒(SubBlock 0.75 + 保守 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 被融合到单个内核中,而不是作为独立的 eager 操作运行。
下表使用一次 1344×768×124 帧、时长 5 秒的 T2VA 请求在真实逐秩(per-rank)形状下的数据:经 SP/Ulysses-8 填充后共 4,722 行,隐藏层大小 5,376,56 个注意力头,头维度 128,RoPE 维度 96,输入为 BF16。每个数字是 10 轮、每轮 20 次调用的逐次 CUDA 事件时间中位数。基线为对应的 eager 组合实现。
| 算子 | Eager 组合实现 | SGLang 内核 | 加速比 |
|---|---|---|---|
| AdaLN 调制(索引式缩放-平移) | 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 值表示允许丢弃的 key 块比例,而非保留比例。因此,sparsity=0.75 每个 query 块大约保留 25% 的 key 块。更激进的 0.80 设置速度更快,但近似误差预算更大,这与最激进行中观察到的较低 SSIM 一致。
下图曲线展示了分数分布;竖线表示两种展示预算下逐行路由截止值的中位数。此处,sparsity=0.50 作为诊断参考被纳入;基准测试配置使用 0.75 和 0.80。由于路由器为每个 query 块和注意力头独立地对 key 块进行排序,sparsity=0.50 和 0.75 大约保留该行可用 key 块的前一半和前四分之一,并受 8 块预算取整的约束。在这些工作负载中,0.75 预算保留了行局部中位数以上的大部分分数质量,同时将选择集中在高分数尾部。
稀疏路径仅对内核支持的长序列、非因果 DiT 注意力调用启用:BF16 输入、头维度 128、序列长度至少 4096 个 token。前十个去噪步骤使用密集注意力;短片段、token 精炼器以及不支持的调用使用密集回退路径。在 H200/SM90 上,选定的 64×64 路由方案由 SGLang 的 CuTe 块稀疏 FlashAttention 内核执行。
演示
演示集为每个选定的提示词包含四种模式:
- 提示词 1 · T2VA · 5 秒 · 三只猫拿着铜管乐器,在熟睡的主人身边演奏;
- 提示词 2 · T2VA · 10 秒 · 雨夜中的赛博朋克城市;
- 提示词 3 · FL2VA · 5 秒 · 黏土狐狸的续集。
四种模式分别是 SGLang lossless、Cache-DiT conservative、SubBlock 0.75 + Cache-DiT stride 和 SubBlock 0.80 + Cache-DiT stride。文件名编码了提示词、任务、模式和时长;SVG 图位于同一文件夹中。
提示词 1 · T2VA · 5 秒
SGLang lossless
Cache-DiT conservative
SubBlock 0.75 + Cache-DiT stride
SubBlock 0.80 + Cache-DiT stride
提示词 2 · T2VA · 10 秒
SGLang lossless
Cache-DiT conservative
SubBlock 0.75 + Cache-DiT stride
SubBlock 0.80 + Cache-DiT stride
提示词 3 · FL2VA · 5 秒
SGLang 无损模式
Cache-DiT 保守模式
SubBlock 0.75 + Cache-DiT stride
SubBlock 0.80 + Cache-DiT stride
提示词 1 · 完整提示词
integrated_multimodal_description: [Shot 1] Live-action, whimsical cinematic, a medium-wide shot frames a dim bedroom at night where the owner sleeps under the covers. A bedroom door opens and three cats enter in single file, each carrying a tiny brass instrument. The camera tracks sideways with small amplitude at slow speed as the cats march beside the bed and play a short, lively diegetic brass tune in synchrony; the sleeping owner shifts slightly but does not wake. The cats finish with one crisp flourish, pivot together, and abruptly file back out through the doorway, with the last cat's tail disappearing from frame. No character speaks and no human voice is heard.
overall_soundscape: Quiet nighttime room tone, the owner's steady breathing, soft pawsteps on the floor, a faint door creak, and light bedding rustle as the procession passes.
non_diegetic_music: N/A
提示词 2 · 完整提示词
integrated_multimodal_description: [Shot 1] Live-action, cinematic, a wide establishing shot frames a futuristic cyberpunk city at night as rain falls across dense towers, elevated transit lines, and a crowded street lined with vivid neon light. The camera pushes forward with small amplitude at slow speed above the wet pavement while pedestrians in reflective coats pass beneath transparent umbrellas, a compact hovering vehicle glides through the intersection, and saturated magenta, cyan, and amber reflections ripple across puddles. Steam drifts from a street vent and briefly catches the neon glow as the vehicle recedes between the towers. No dialogue or voiceover is heard.
overall_soundscape: Steady rainfall, distant traffic, the low hum of elevated transit, electrical buzzing from signs, soft footsteps through shallow water, and a brief rush of air as the hovering vehicle passes.
non_diegetic_music: A slow electronic pulse with deep analog bass, sparse metallic percussion, and sustained synthesizer tones that gradually increase in volume before fading.
提示词 3 · 完整提示词
For the target video, at 0.00 seconds into the target video, <Picture 1> is fully referenced.
integrated_multimodal_description:
[Shot 1] A handcrafted stop-motion clay animation begins from <Picture 1>. A small orange clay fox with large expressive eyes trots along a mossy path through a warm, richly detailed miniature forest. The camera tracks the fox smoothly at eye level while layered clay trees and shrubs create gentle parallax. The fox looks curiously toward the camera, slows near the middle of the path, flicks its tail, then continues toward the small wooden cabin in the distance. Preserve the exact clay textures, warm amber lighting, forest layout, fox proportions, and family-friendly whimsical tone established by <Picture 1>. Motion remains coherent and physically plausible for stop-motion animation.
overall_soundscape:
Soft clay footsteps, rustling leaves, distant birds, and a light forest breeze accompany the fox's movement.
non_diegetic_music:
A gentle playful score with pizzicato strings, wooden percussion, and soft flute.
致谢
这一评测基准是多个团队共同努力的成果,我们对此深表感谢。
- SGLang Diffusion 团队——撰写了本文初稿,推动了这些成果所依托的 SGLang 内核工作,并提供了本文所测的扩散运行时、融合内核及并行方案。
- 黄吉(@IPostYellow),蚂蚁集团——运行了 H200 基准测试,将 SubBlock 稀疏注意力引入 SGLang Diffusion,并修订了本文。
- Cache-DiT 团队 — 感谢 @DefTruth 及 vipshop.com 团队,感谢他们开发 Cache-DiT,并支持将其缓存配置文件集成到 SGLang Diffusion 中。
- MiniMax — 感谢他们开源 MiniMax-H3,本文所有测量均基于该模型运行。
- NVIDIA — 感谢其底层 SubBlock 稀疏注意力支持,包括这些结果所依赖的块稀疏注意力前向计算。
测量于 2026-08-18,在 8× NVIDIA H200 上完成。复现细节及每条提示词的原始数据见 基准测试仓库。
来源:LMSYS:Blog(Chatbot Arena 团队) · lmsys.org