NVIDIAMichelle HortonProblem & solution
Restore LLM Inference Capacity in Seconds with Shadow Engine Recovery in NVIDIA Dynamo
Summary
LLM engine process failures typically trigger cold restarts that reload weights into HBM, compile kernels, and recapture CUDA graphs, leaving surviving workers to absorb displaced traffic for minutes. Shadow engine recovery, a preview feature in NVIDIA Dynamo, keeps a fully initialized standby on the same GPUs as the active engine. GPU Memory Service (GMS) preserves one physical weight copy across engine processes, while the parked shadow precomputes its CUDA context, graphs, communicators, and mappings but defers KV cache materialization. In a GLM-5.2 test, the shadow resumed service in 7.3 seconds after a worker failure, compared with 283 seconds for a cold restart, reducing post-fault p50 TTFT from 23,815 ms to 1,311 ms and improving decode rate from 12 to 46 tok/s/user. The preview does not cover hardware, node, or multi-node failures and currently starts promoted shadows with empty KV caches.
Context
Recoverable LLM engine faults can lose only the process and its corrupted state while leaving the hardware, drivers, and node healthy, yet replacement engines still require lengthy initialization. Weights are tied to the engine process, and non-transferable NCCL, torch.distributed, and CUDA graph state must otherwise be recreated after every restart.
Approach / What changed
Shadow engine recovery combines a GMS sidecar, a preinitialized standby engine, and worker-level coordination. GMS keeps weights resident in persistent physical GPU memory and lets multiple engine processes map the same bytes. The shadow initializes communicators, CUDA graphs, mappings, and warm-up work before parking; on promotion, it materializes its KV cache and takes the worker lock.
Takeaways
GMS keeps a single physical copy of weights in HBM available across engine-process failures, while each engine maps those pages into its own CUDA address space.
In the GLM-5.2 two-worker test, shadow recovery restored a second serving worker in 7.3 seconds versus 283 seconds for a cold restart.
Promoted shadows begin with empty KV caches, causing a slight post-cutover TTFT bump; cache state transfer is still under development.
Source and freshness
- Source
- developer.nvidia.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.