howtospark
models / nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16

32B params~3.6B activebfloat16MoE 128×6GQA 32:2MTP ×1262K ctxother
Sparks
Users
~71 GB
~56 GB
~40 GB
~24 GB
~17 GB
~18 GB
~17 GB
110 usable
REAP dialno pruning · 128 experts
Spec decode
Context33K / 262KKV
On the Sparks — 1× · 2-bit experts + NVFP4 dense · 33K ctx · FP16 KV~15.2M ctx fits usable · ~464 users fit
spark
93 GB free
110 usable
17* / 110 GB
15% of usable
Expert planesDense weightsKV cacheActivations + graphsOS reserve

* segment sizes marked with an asterisk are estimates pending a measured run

Estimated per-node footprint, weights + KV sharded across the Spark (tensor parallel). Overhead ~8 GB/node; KV at FP16.

layer map
52 layersmamba (SSM)×23MoE FFN×23attention×6
in
out

one MoE layer · 128 experts, 6+1 fire per token

each expert ≈ 10M params

resident: 23 MoE layers × 128 experts × 10M ≈ 29.4B

active/token: 23 × 6 × 10M ≈ 1.4B experts

+ 2.2B always-on dense (attention, embeddings, shared stack) = 3.6B active

Optimize
Verdict

32B params, ~63 GB at bfloat16 — fits on one Spark as-is.

Make it fit

Get the weights (and headroom for KV) inside the 128 GB pool — the hard gate.

Lossless compression

BF16 weights entropy-code ~30% smaller bit-exact — smaller downloads and less bandwidth per token, no quality question at all.

Make it fast

Once it fits: fewer bytes per token and fewer decode steps against 273 GB/s.

Use its MTP heads

Ships 1 multi-token-prediction layer(s) — self-speculative decode with no separate draft model; check vLLM/SGLang support for this arch.

Prune experts for speed

Fewer experts ⇒ smaller working set ⇒ better cache/page behavior, even when it already fits.

Tame the KV cache

At 262144 tokens the KV cache alone is ~2 GB at FP16; quantize or evict.

Make it yours

Change what the model does — adapt, edit, or steer it — independent of size.

Fine-tune it

LoRA/QLoRA adapts behavior on one Spark without touching the base weights.