@@ -72,6 +72,27 @@ Decode is output-only, so lowering its precision is safe. (Encode seeds the
7272denoising trajectory for I2V/causal models, so that stays at the pipeline's
7373default — don't lower ` vae_precision ` blindly for those.)
7474
75+ ## Memory: one unified 128 GB pool
76+
77+ The GB10 has ** no separate VRAM** — CPU and GPU share one 128 GB LPDDR5X pool
78+ (~ 118 GB usable). Two practical consequences:
79+
80+ - ** ` nvidia-smi ` reports memory as ` [N/A] ` ** on the GB10. For a model's real
81+ GPU-side footprint use torch's allocator high-water mark
82+ (` torch.cuda.max_memory_reserved() ` ); the system "used" figure conflates
83+ CPU + GPU + cache and is only a soft upper bound. ` spark_benchmark.py ` prints
84+ the torch figure for you.
85+ - ** The 128 GB is a * working-set* ceiling, not storage** — the model cache lives
86+ on the NVMe (3.7 TB, ample). What has to fit in 128 GB is weights + activations
87+ + KV, and — critically — the ** VAE decode buffers** , which is why tiling matters
88+ (an untiled high-res decode can spike the pool into swap and lock the box).
89+
90+ The recommended few-step models are comfortable here: their weights are small
91+ (1.3–2 B) and few-step generation keeps activations modest. The pressure comes
92+ from ** decode resolution/frames** , not the model — a 1080p×121-frame untiled
93+ decode is what pushes the pool toward its ceiling. Run ` spark_benchmark.py ` to see
94+ the peak figure for your exact config.
95+
7596## What helps vs. what doesn't on the GB10
7697
7798The honest summary — most "obvious" GPU optimizations don't move the needle on
@@ -133,6 +154,22 @@ is power-cycled. To avoid it:
133154- Leave ` *_cpu_offload ` at the example defaults — "CPU" offload is the * same*
134155 unified RAM on the GB10, so the win is tiling + sane resolution, not offloading.
135156
157+ ## Gotchas specific to the GB10
158+
159+ A few things that surprise people on this box (beyond the memory notes above):
160+
161+ - ** Don't force ` TORCH_SDPA ` on a VSA checkpoint** (FastWan, LTX2.3-distilled).
162+ The SDPA path builds a model without the gate weights the checkpoint carries and
163+ fails to load. Run the model natively — VSA auto-routes to its Triton kernel on
164+ ` sm_121 ` .
165+ - ** Few-step timings are noisy run-to-run** (~ ±30%) — one-time startup dominates a
166+ 3-step run. Compare in-process / as medians, never two separate single runs (the
167+ benchmark script does this).
168+ - ** ` nvidia-smi ` shows ` [N/A] ` for memory** — see [ Memory] ( #memory-one-unified-128-gb-pool ) .
169+ - ** Cosmos-2.5** uses a Qwen2.5-VL text encoder; make sure you're on a FastVideo
170+ build recent enough to include its ` transformers ` -compatibility handling before
171+ running it.
172+
136173## Reproduce these numbers
137174
138175Two scripts under ` examples/inference/optimizations/ ` reproduce the claims on
0 commit comments