Skip to content

About

LLM inference that actually exploits NVIDIA H200 / Hopper — not a generic CUDA port.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

54 Commits

Folders and files

Repository files navigation

DeepInfer Hopper

DeepInfer Hopper

LLM inference that actually exploits NVIDIA H200 / Hopper — not a generic CUDA port.

H200-first Hopper SM90 Apache-2.0 fork of DeepInfer


Who this is for

Teams with H200 (and other Hopper) capacity who want DeepSeek-V4.1-Flash to ride SM90 + HBM3e hard — inference platforms chasing real tokens/s, not a checkbox “CUDA builds.”

Why this fork

Upstream DeepInfer is DeepSeek’s production-grade offline engine. The public tree targets SM100 and Ascend 950. Hopper (H200 / H100 / H20, SM90) is out of scope there.

DeepInfer Hopper is a personal, public adaptation focused on:

  1. Landing an SM90 path (building on community work such as DeepInfer#92)
  2. Tuning for H200 first, then A100
  3. Reproducible throughput benches — accept rate, decode tokens/s, memory — not vibes

Quick start

git clone --recurse-submodules https://github.com/kabishou11/deepinfer-hopper.git
cd deepinfer-hopper
export DEEPINFER_ACCELERATOR=nvidia
export DEEPINFER_CUDA_ARCH=sm90
./build.sh
python examples/offline_inference.py --ep 8

Checkpoint (upstream): deepseek-ai/DeepSeek-V4.1-Flash-1017. Full Hopper notes: doc/sm90.md, doc/h200.md, doc/h100.md. Named layouts: configs/h200 (141 GB), configs/h100 (H100 SXM ~80 GB). Offline driver: benchmarks/offline. The unmodified upstream README is at docs/upstream-README.md.

How to build

H200-first. Same SM90 family as the H20-3e path in DeepInfer#92; that series is what this tree ports. Do not treat H20-3e numbers as H200 numbers. H100 shares that SM90 path but not the 141 GB EP/concurrency table — see doc/h100.md.

Prerequisites

Item Requirement
OS Linux
Python 3.12, empty venv
Compiler GCC >= 13
CUDA toolkit 13.x (pinned PyTorch is torch==2.13.0+cu132)
Driver R590 (CUDA minor-version compatibility), or R570 plus cuda-compat-13-2 with that libcuda first on LD_LIBRARY_PATH
Extra headers libdw-dev (DeepGEMM and DeepEP)
Submodules clone with --recurse-submodules, or git submodule update --init --recursive

H200-priority switches

export DEEPINFER_ACCELERATOR=nvidia
export DEEPINFER_CUDA_ARCH=sm90   # set this on CPU-only build hosts; Hopper boxes detect 9.x as sm90
./build.sh

On sm90, build.sh installs requirements-sm90.txt, builds flash_mla_sm90 from vendor/FlashMLA-SM90 (FlashMLA ba89a34 plus the V4.1 patch), and applies the SM90 vendor patches under scripts/vendor_patches/.

Verified vs expected

What Status
End-to-end DeepSeek-V4.1-Flash on 8x / 4x H20-3e Verified in DeepInfer#92 (doc/sm90.md)
Same SM90 code paths on H200 (PLATFORM.is_sm90, sm90_ops/) Expected — H200 is compute capability 9.0
get_bf16_tflops_limit() 989 TFLOPS on H200; 148 TFLOPS only when the NVML name matches H20 / H20-3e as a whole word
FP8 GEMM launch configs Tuned on H20-3e; other SM90 parts (including H200) use the heuristic fallback. CPU-safe sweep plan: benchmarks/kernel_sweeps. No H200 winner tiles in this tree
humming-kernels #92 validated 0.1.12 on H20-3e. H200 testers reported a misaligned local-memory read in 0.1.12; this tree pins 0.1.13, which includes that alignment fix. Full-model H200 still unverified
H200 tok/s, TTFT, GSM8K Not measured here. Phase 2 runbook + CPU bring-up check are in-tree (docs/h200-phase2-runbook.md, scripts/sm90_bringup_check.py; scripts/h200_bringup_check.py is the H200 alias); live numbers stay TBD

If you skipped --recurse-submodules on clone:

git submodule update --init --recursive

Roadmap

Phase Focus Status
0 Branding + positioning ✅
1 Import DeepInfer + SM90 path, H200/H100 config matrix, offline bench scaffolding ✅
2 H200 bring-up & baselines 🚧 runbook + CPU bring-up/CI ready; blocked on hardware — no tok/s / TTFT / VRAM in this tree. See docs/h200-phase2-runbook.md
3 Hopper kernels / graphs / MTP · FP8·NVFP4 where it wins 🚧 operator wiring + MTP/DSpark/CUDA-graph scaffold + watchlists + NVFP4 note in-tree; live H200 numbers and graph-capture proof still Phase 2
4 Multi-node layouts · A100 (SM80) later

Disclaimer

Personal fork by kabishou11. Not affiliated with DeepSeek or NVIDIA. DeepInfer remains © DeepSeek under Apache-2.0; NVIDIA / Hopper / H200 are trademarks of their owners. No claim of production parity with DeepSeek’s full serving stack (KV store, PD disaggregation, and LB are still out of the public upstream).

Contributing

Issues and PRs welcome. Prefer small, measured changes with benches.

License

Apache-2.0 for imported DeepInfer code (see LICENSE). Logo and docs in this repository © Zhu Lei (kabishou11), unless noted.


Hopper-first. Throughput-obsessed. Built in public.

About

LLM inference that actually exploits NVIDIA H200 / Hopper — not a generic CUDA port.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages