Skip to content

Add MiniMax-H3 8×H200 diffusion benchmark blog post - #412

Open
BBuf wants to merge 7 commits into
lm-sys:mainfrom
BBuf:blog/minimax-h3-h200
Open

Add MiniMax-H3 8×H200 diffusion benchmark blog post#412
BBuf wants to merge 7 commits into
lm-sys:mainfrom
BBuf:blog/minimax-h3-h200

Conversation

@BBuf

@BBuf BBuf commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a blog post benchmarking MiniMax-H3 video generation on 8× NVIDIA H200 with SGLang Diffusion. Prompts, seeds, resolution, frame rate and denoising steps are held constant across six workloads (T2VA and FL2VA, 5 s and 10 s, 1344×768, 24 FPS, 50 denoising steps).

Highlights

  • SGLang's dense, lossless path is 1.85–1.95× faster than Diffusers — no approximation, same denoising work.
  • Stacking step reuse and sparse attention reaches up to 6.24×: SubBlock 0.80 + Cache-DiT stride gives 5.06×/5.72× on 5 s/10 s T2VA and 5.86×/6.24× on FL2VA.
  • Every accelerated profile is reported with SSIM against the lossless baseline, so the quality cost is visible rather than implied. Cache-DiT alone stays at 0.90–0.92 mean SSIM for up to 2.99×.
  • The post separates the three layers that produce the speedup — fused kernels, Cache-DiT step reuse, and NVIDIA's SubBlock sparse attention — and includes a measured 49-step execution trace showing which steps each profile actually runs.

Files

  • blog/2026-08-21-minimax-h3-h200.md
  • public/images/blog/minimax-h3-h200/ — six SVG figures, a preview frame, and twelve demo clips (4.9 MB total; the clips are re-encoded to 756×432 with audio, in line with the existing vicuna/demo-narrow.mp4 and vision_arena/demo.mp4 assets)

The demo clips are embedded with <video controls> so readers can compare the four modes on the same prompt side by side and judge the sparse profiles' quality cost directly.

Notes for reviewers

Benchmarks MiniMax-H3 video generation on 8x NVIDIA H200 with SGLang Diffusion,
holding prompts, seeds, resolution, frame rate and denoising steps fixed across
six workloads (T2VA and FL2VA, 5 s and 10 s, 1344x768, 24 FPS, 50 steps).

SGLang's dense lossless path is 1.85-1.95x faster than Diffusers; stacking
Cache-DiT step reuse with NVIDIA's SubBlock sparse attention reaches up to
6.24x. Every accelerated profile is reported with SSIM against the lossless
baseline, and the twelve demo clips let readers judge the quality cost.

Assets: six SVG figures, a preview frame, and twelve demo clips re-encoded to
756x432 with audio (4.9 MB total, in line with the existing vicuna and
vision_arena video assets).

Co-Authored-By: HuangJi <32611516+IPostYellow@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@BBuf
BBuf force-pushed the blog/minimax-h3-h200 branch from f807bf6 to 71797bb Compare August 21, 2026 08:24
BBuf and others added 6 commits August 22, 2026 12:48
From review on the rendered preview:

- Note that this comparison covers three acceleration knobs and that SGLang
  Diffusion supports further lossy paths (quantization, progressive resolution)
  which are not part of this run, so the numbers are a slice of the envelope
  rather than its ceiling.
- Open Background with the motivation: a fast lossless path already exists for
  MiniMax-H3, and faster lossy generation of high-quality video is what the
  community has been asking for.
- Pin the software: SGLang v0.5.18 (d90318b3e2) as a Version row in the setup
  table, so a reader knows what the numbers were produced against.
- Point at the SGLang cookbook page for MiniMax-H3, which carries the exact
  launch flags for every mode in the tables.

Co-Authored-By: HuangJi <32611516+IPostYellow@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both charts grouped their bars by technique family, so each panel read out of
order: SubBlock 0.75 at 30 s sat below Cache-DiT conservative at 28 s, and the
SubBlock 0.80 bars landed near the bottom regardless of value. Every panel now
runs from slowest to fastest (and from highest to lowest speedup), which is how
a reader scans these.

Only the y coordinates move. Each bar travels as a block - its label lines, its
rect, and its value label - so widths, colours, anchors and the wrapped
two-line mode names stay attached to the bar they belong to. The baseline bar
in the speedup chart carries no value label, which the transform accounts for.

Verified against the originals: identical element counts, every label row
matches its rect, and both files still parse as XML.

Co-Authored-By: HuangJi <32611516+IPostYellow@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The previous title advertised "up to 6.24x" with nothing to say what it costs,
which reads as if the speedup were free. Saying "lossy" instead only moves the
problem: it states that quality is traded without saying how much.

The title now carries both headline numbers and the measured SSIM range of the
6.24x profile - 0.76-0.91 across its four cells - so the trade is legible before
a reader opens the tables. The range is the full span, not the best cell: FL2VA
holds 0.85-0.91 there while T2VA drops to 0.76-0.78, and the TL;DR now says so
explicitly.

It also stops burying the strongest result. 1.95x with no approximation at all
is the number most readers can adopt directly, and the old title hid it behind
the most aggressive profile.

Co-Authored-By: HuangJi <32611516+IPostYellow@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The previous sort took each bar as the whole span between the preceding bar and
its own value label. In the speedup chart the panel titles, the subtitle and the
x-axis tick labels sit inside those spans in document order, so they travelled
with the bars: the chart title landed in the middle of the first panel, the
T2VA/FL2VA labels fell to the bottom of their bar stacks, and the axis ticks
overlapped the bars.

A bar is now defined by geometry rather than by position in the file: its rect
plus only the text elements whose y sits inside that rect's row. Everything else
keeps its coordinates.

Verified per file against the pre-sort originals: no element changed except its
y attribute, none of the titles, panel labels or axis tick rows moved, all eight
panels read descending, and both files still parse. The latency chart was
unaffected by the original bug and is byte-identical to the previous commit.

Co-Authored-By: HuangJi <32611516+IPostYellow@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The preview was a frame lifted from one of the demo clips, which said nothing
about what the post measured. It is now a 1200x630 card pairing the MiniMax and
SGLang marks with the headline numbers underneath - 1.95x lossless, up to 6.24x,
and the hardware and SSIM range that qualify them - so the card carries the same
claim as the title instead of a decorative still.

Both marks come from the SGLang repo (docs/cards/logos/minimax.png and
assets/logo.png). The MiniMax file is RGBA but not cut out: it carries an opaque
white plate behind the glyph, which shows as a box over any tinted ground, so the
near-white pixels are knocked out before compositing.

Palette and type follow the post itself - the same paper, teal and rose, the same
mono for data - with one faint wash per brand and a dot grid for ground.

Co-Authored-By: HuangJi <32611516+IPostYellow@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three fixes from review:

- The marks identify the brands but not what was measured, so "MiniMax-H3" and
  "SGLang Diffusion" now sit under their own logos.
- "50 steps" was wrong on a card that advertises the accelerated profiles: the
  Cache-DiT configurations reach their speedup precisely by skipping denoising
  steps, so 50 describes the baseline alone. The remaining qualifiers - 8x H200,
  1344x768, 0.76-0.91 SSIM - hold across every configuration.
- The SGLANG DIFFUSION / BENCHMARK eyebrow was decoration on a card that already
  carries both logos; removed.

Co-Authored-By: HuangJi <32611516+IPostYellow@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant