Sol-Engine × Sol-Attn · MiniMax-H3 Inference

Sol-H3- Spark Accelerating MiniMax-H3 768p Video Generation on a Single NVIDIA DGX Spark in 1 Minute

NVIDIA Research, Efficient AI Team & Singapore Lab.

768p resolution 5s duration 56s e2e latency

A two-stage pipeline specialized for a single NVIDIA DGX Spark generates a 384p draft and refines it to 768p.

Sol-H3 introduction 1344×768 / 24 FPS
Sol-H3 on Spark · Introduction · 1344 × 768 · 24 FPS
01 / Results

Less than one minute

56 seconds from a fresh prompt to a playable 768p video with T2VA or FL2VA. Ref2VA is slightly slower with more tokens.

Complete request latency
4-step LoRA
374 s
4-step LoRA + quant
153 s
Sol-H3
56 s
Stage 1: 4-step H3 · NVFP4/FP8 quantStage 2: LTX-2.5 3-step refinerReference ↗

Timing notes & breakdown

The two hot measurements reflect production serving: from prompt arrival, including fresh Qwen encoding, to a completed MP4 with audio.

Where the 56.17 s goes

Share of E2E latency
  1. Qwen prompt encoding2.4%
  2. H3 4-step generation35.2%
  3. H3 upscaler + VAE Adapter3.8%
  4. LTX 3-step refinement44.0%
  5. LTX VAE decode12.5%
  6. MP4 output + audio mux1.3%
  7. Request overhead0.9%
02 / Generations

Sol-H3 showcase

Selected generations across T2VA, FL2VA and Ref2VA.

03 / Approach

Coarse-to-fine pipeline

Generate the scene on a compact H3 latent canvas, upscale in H3 space, then transfer to LTX for three-step refinement and full Conv VAE decoding.

01 · Generate

MiniMax H3 · 384p

672 × 384 · 124 frames

NVFP4 Qwen · FP8 DiT · 4 steps LoRA

Latent transfer

VAE Adapter

H3 space → LTX space

24s saved

VAE-free latent mapping

02 · Refine & decode

LTX · 768p

1344 × 768 · 121 frames

LTX-2.5 · Sol-Attn · 3 steps · no text encoder

Stage 1 supports compatible few-step LoRAs and 384p, 480p or 512p drafts, with matching latent upscaling to 768p.

04 / Memory

The “black magic”: How Sol-H3 gets faster

Two models need more than faster kernels: they need room to stay loaded. Our estimated naive two-stage configuration exceeds Spark’s shared memory budget.
Two changes make residency practical: (1) a learned VAE Adapter removes inter-stage video decode/re-encode; (2) a cached generic refinement prompt removes online Gemma and connector processing. Quantization then lets the retained components stay resident. The latent carries the scene condition; the generic prompt describes refinement quality, not scene content.

Resident memory · GiB

Memory breakdown

DGX Spark exposes CPU and GPU unified memory as one 119.68 GiB pool. Crossing the line means the complete pipeline cannot stay resident.

BF16 checkpoint weights alone

MiniMax-H3 · official

133.4 GiB 13.7 GiB above capacity
Qwen H3 DiT VAE dec.
Qwen text encoder H3 DiT H3 audio VAE H3 VAE decoder
Cross-model latent and prompt reprocessing

Naive two-stage pipeline

142.4 GiB 22.7 GiB above capacity
Qwen H3 H3 dec. Gemma LTX Runtime & working set
NVFP4 Qwen FP8 H3 DiT H3 latent upscaler H3 VAE decoder LTX VAE encoder Gemma text encoder LTX connector LTX refiner LTX VAE decoder Runtime, allocator and shared UMA overhead
Latent transfer + cached Stage 2 prompt

Sol-H3

116.9 GiB 2.8 GiB free at sampling
Qwen H3 LTX Runtime & working set
NVFP4 Qwen FP8 H3 DiT H3 latent upscaler VAE Adapter LTX refiner LTX VAE decoder Runtime, allocator and shared UMA overhead

The full official MiniMax-H3 pipeline cannot fit entirely in DGX Spark’s unified memory. A naive two-stage pipeline requires both complete model stacks, exceeding the memory budget even with low-bit weight quantization. Sol-H3 removes redundant components through VAE-free latent transfer and refiner prompt caching, allowing the two-stage pipeline to stay fully resident and run without out-of-memory errors.

Technical details 5 optimizations

Sol-Attn

Sparsify on the fly

Query-dependent · one-pass · training-free

Select blocks while attention runs.

Mechanism

Each query block sets its own threshold over lightweight query–key scores. Selected blocks use exact attention; skipped blocks receive an approximate correction from pooled K/V summaries.

Why it is faster

Routing, sparse attention and approximate correction share one online-softmax pass. Sol-Attn writes no separate full score map or routing-index tensor and needs no retraining.

Refiner conditioning

Cache the refiner prompt

Generic prompt · encoded once

Let the latent carry the scene.

Mechanism

The 384p draft latent already gives the refiner a strong content and motion prior. A content-agnostic quality prompt can be encoded once through Gemma and the connector.

Why it is faster

The cached post-connector features remove runtime LTX text encoding and let Gemma stay out of the resident pipeline. Stage 1 still runs a fresh Qwen encode for every request.

Resident deployment

Keep the runtime resident

Quantize · fit · stay warm

Fit both stages into one shared pool.

Mechanism

NVFP4 Qwen, an FP8 H3 DiT, the VAE Adapter, cached Stage 2 context and low-bit video components reduce the resident footprint while preserving the fixed two-stage recipe.

Why it is faster

A resident pipeline avoids per-request model construction, checkpoint parsing and weight switching. Each request moves directly from prompt encoding through both video stages.

Kernel & I/O fusion

Fuse the execution path

BSA · layout · encode

Remove redundant work end to end.

Mechanism

Stage 1 VSA runs selected blocks through cuDNN BSA with fused routing and merge. The final Conv VAE emits its preferred NHWC layout directly, while chunked encode and audio mux avoid extra staging.

Why it is faster

Eliminating dense fallbacks, standalone transposes and unnecessary host synchronization reduces memory traffic and keeps delivery work inside the measured request path.

Credits

Acknowledgements

We thank the teams and open projects that helped turn Sol-H3 into one end-to-end Spark pipeline.

Core contributors Haopeng Li Junsong Chen Yitong Li Jincheng Yu Jingyu Xin Haocheng Xi Song Han Enze Xie
MiniMaxMiniMax-H3 base weights, used with FP8 quantization in Stage 1, and native video-and-audio generation.
Sol-Engine & Sol-AttnThe inference framework, SuperH3 workflow and sparse refinement attention.
Comfy-OrgPre-quantized MiniMax-H3 FP8 checkpoints used in our earlier Spark experiments.
LightricksLTX-2.5 refinement and the official convolutional video VAE.
LBH-123-AIThe learned H3 latent upscaler used before the VAE adapter.
LightX2VOpen H3 acceleration work supporting the original Sol-Engine workflow.
Video DeltaNet · UC BerkeleyComplementary hybrid-attention work for MiniMax-H3.
Humanize + KDA Operator and kernel optimization alongside Sol-Engine.
FastH3 · Hao AI Lab @ UCSDThe four-step FastH3 VSA model used for our 384p draft stage.

Citations

If this project helps your work, please cite the Spark release and the underlying Sol-Engine and Sol-Attn papers.

BibTeX · Release + core papers
@misc{solh3spark2026,
  title        = {Sol-H3: Speed-of-Light MiniMax-H3 on Single NVIDIA DGX Spark Blackwell Superchip},
  author       = {{Sol-H3 Team}},
  year         = {2026},
  howpublished = {\url{https://nvlabs.github.io/Sana/Sol-Engine/Sol-H3-Spark/}},
  note         = {Single-Spark project release}
}
@misc{li2026solvideoinferenceengine,
  title         = {Sol Video Inference Engine: Agent-Native Full-Stack Acceleration Framework for Efficient Video Generation},
  author        = {Yitong Li and Junsong Chen and Haopeng Li and Haozhe Liu and Jincheng Yu and Ligeng Zhu and Ping Luo and Song Han and Enze Xie},
  year          = {2026},
  eprint        = {2606.23743},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CV},
  doi           = {10.48550/arXiv.2606.23743},
  url           = {https://arxiv.org/abs/2606.23743}
}
@misc{li2026solattn,
  title         = {Sol-Attn: Accelerating Video Generation Inference via On-the-Fly Attention Sparsification},
  author        = {Haopeng Li and Yitong Li and Junsong Chen and Tian Ye and Haozhe Liu and Jincheng Yu and Duomin Wang and Ruihua Zhang and Zeke Xie and Enze Xie and Song Han},
  year          = {2026},
  eprint        = {2607.24027},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CV},
  doi           = {10.48550/arXiv.2607.24027},
  url           = {https://arxiv.org/abs/2607.24027}
}