Skip to content

Repository files navigation

MiniMax H3 on Intel Arc Pro B70

CI

Reproducible notes and launch tooling for running the originally CUDA-oriented MiniMax H3 audio-video model on one or two Intel Arc Pro B70 GPUs.

This repository documents a working Linux port. We validated one-card ComfyUI inference, two independent one-card workers, and one SGLang tensor-parallel generation split across two B70s. It contains no model weights, prompts from production work, or generated media.

Practical recommendation: I found that 8 steps at 1344x768 for about five seconds is acceptable for quick drafts and candidate search, but 20-step, dual-B70 TP2 generation at the same resolution and duration should be used for higher-quality final generations.

Measured results

Two 31.89 GiB B70s, 59 GiB usable host RAM, 24 fps, 124 output frames. Times are wall-clock measurements from August 8–9, 2026.

Mode Workload Result Best use
One B70, ComfyUI cached 1344x768, 5.17 s, 8 steps 464.27 s warm Simple one-card drafts
Two independent B70 workers Two 1344x768, 5.17 s, 8-step jobs 696.95 s for both Parallel candidate search
Two B70s, SGLang TP2 1344x768, 5.17 s, 8 steps 329.61 s Fastest single draft
Two B70s, SGLang TP2 1344x768, 5.17 s, 20 steps 670.61 s Final generation

The independent pair delivered about 1.70x the measured serial baseline for two clips. The TP2 and ComfyUI numbers are not a pure topology comparison: they use different quantized checkpoints and sampling implementations.

See the benchmark report for methodology, memory minima, quality observations, and failed boundaries.

Choose a path

  • Start with one B70: use the ComfyUI quickstart. It uses the official ComfyUI H3 nodes and the smaller official quantized model pack.
  • Use both cards for throughput: start two isolated ComfyUI workers. Each process sees one physical device and runs a separate request.
  • Use both cards for one clip: use the advanced SGLang TP2 path. This is the fastest measured single-generation route, but it requires local checkpoint conversion and the included SGLang patch.

Two cards do not become one transparent 64 GiB VRAM pool. Independent workers duplicate model state. TP2 explicitly shards supported layers and still needs careful component staging because activations and some components remain replicated.

Before you start

Path GPUs Host RAM Working disk space
ComfyUI One 32 GiB B70 64 GiB recommended About 65 GiB
Independent workers Two 32 GiB B70s 64 GiB minimum for the tested low-VRAM profile About 65 GiB
SGLang TP2 Two 32 GiB B70s 64 GiB plus swap At least 220 GiB during conversion

The tested host used Linux, Python 3.12, 59 GiB usable RAM, and 32 GiB swap. Start with the ComfyUI path unless you specifically need one request sharded across both cards.

Five-minute preflight

Install an Intel XPU build of PyTorch in your environment, then run:

python scripts/xpu_preflight.py
ONEAPI_DEVICE_SELECTOR=level_zero:0 python scripts/xpu_preflight.py --stress
ONEAPI_DEVICE_SELECTOR=level_zero:1 python scripts/xpu_preflight.py --stress

For two-card TP2, also validate XCCL before loading H3:

python scripts/xccl_smoke.py --timeout 45

A healthy result reports two matching B70 devices and validates the numerical result of both all_reduce and all_to_all_single.

Repository map

docs/           setup, architecture, benchmarks, and troubleshooting
examples/       minimal ComfyUI and SGLang API clients
patches/        tested SGLang XPU/H3 compatibility patch
results/        sanitized machine-readable measurements (no media)
scripts/        preflight, downloads, conversion, and launchers
tests/          offline safety and schema checks

What made the port work

The useful engineering work was not replacing cuda with xpu. The stable configuration required:

  1. Intel runtime and PyTorch wheels from the same SYCL generation.
  2. Per-process Level Zero isolation for one-card ComfyUI workers.
  3. A tensor-parallel-safe INT4 Qwen3-VL text encoder plus FP8 DiT for TP2.
  4. Stage-by-stage component residency so a 59 GiB host never holds every large component and activation at once.
  5. Torch SDPA in place of CUDA-only attention kernels.
  6. Host-memory guards, explicit XPU synchronization, and kernel-log checks.

The exact tested software is recorded in environment.json.

Important limitations

  • Five requested seconds was the safe TP2 boundary on this 59 GiB host. An eight-second TP2 request fell to 1.3 GiB available RAM and was aborted.
  • One low-VRAM ComfyUI worker completed an eight-second clip, but took 1,132.62 seconds and relied heavily on shared/unified memory.
  • Long 20-step TP2 sessions accumulated paging pressure. Restart the idle TP2 service after every two final-quality shots on a 64 GiB-class host.
  • Do not terminate active XPU work unless necessary; forced termination can cause xe compute-engine resets.
  • This repository does not claim that these are universal settings or a topology-only benchmark.

Model assets

Model weights and generated media are not included. Download MiniMax H3 from its official source and review the upstream terms for your location and use.

Official sources:

License

Original code and documentation in this repository are licensed under Apache-2.0. Upstream-derived patch hunks remain under SGLang's Apache-2.0 license.

About

Run MiniMax H3 on Intel Arc Pro B70 GPUs with ComfyUI or dual-GPU SGLang TP2.

Resources

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages