Explanation

warmctl and the alternatives

Several tools shorten a vLLM cold start. They differ in what they keep: the weights, the processes, or the whole warmed-up engine, and in where a restore can run. This page compares them from each project's own documentation, checked on 31 October 2026.

What each one restores

ToolWhat comes backGPUs per engineRestore on another hostNeeds KubernetesLicense
warmctlThe engine's processes (CRIU), each GPU's state with compiled kernels and CUDA graphs, and the processed weights1 to 8 on one node, tensor and expert parallelYes, in any cluster, cloud or data center with the same GPU model and count, driver branch and CPU features; pulled from any OCI registry or mirrorNo; Kubernetes and KServe are supportedApache-2.0
NVIDIA Dynamo SnapshotA fully initialized GPU pod (CRIU and cuda-checkpoint); vLLM, SGLang and TensorRT-LLM1 to 8 on one node; several nodes on its roadmapYes, on a node of the same installation with the same GPU and driver, from the cluster's checkpoint storeYes: an operator, a privileged agent on every GPU node, the GPU Operator and a ReadWriteMany volume; not yet for production-critical workloadsApache-2.0
vLLM initialized snapshotsThe engine process after initializationOne (tensor parallel size 1)No: same machine, "not a portable model artifact"NoApache-2.0
vLLM PreloadProcessed weights, held in GPU memory by a daemon on the nodeTensor, expert and data parallelNo: the daemon lives on the nodeNoApache-2.0
Modal GPU memory snapshotsA container's CPU and GPU memory"Generally incompatible with multi-GPU code"Within Modal's platformHosted serviceCommercial
CedanaProcesses and GPU memory; also live migrationSeveral GPUs on one node; several nodes in design partnershipWith matching versions (compatibility)Kubernetes or SLURMCommercial; daemon AGPL-3.0
Weight loaders: Run:ai Model Streamer, fastsafetensors, TensorizerFaster reads of the weights only; the engine still compiles, autotunes and captures CUDA graphsAnyYes: they read checkpoints from storageNoOpen source

Restore times are not compared here: each project measures on different GPUs, models and storage. warmctl's own numbers, with the setup behind each, are in the catalog and the blog.

warmctl and Dynamo Snapshot

Both checkpoint a warmed-up engine with CRIU and cuda-checkpoint and restore it on a node with the same GPUs and driver. They differ in what you run and in where a snapshot can go.

warmctlDynamo Snapshot
What you installOne static binary on a GPU host with Docker; in Kubernetes, the same binary in a privileged podA per-cluster Helm release: a control-plane operator and a privileged node agent with a PageBroker sidecar on every GPU node, plus the GPU Operator 26.3 or newer and a ReadWriteMany storage class
Snapshot formatAn OCI 1.1 artifact: content-addressed blobs and an image index with one entry per GPU platformCRIU image files under artifacts/<id>/containers/<name>/ in the cluster's checkpoint store
Where snapshots liveAny OCI registry: GHCR, ECR, Harbor, Docker Hub, registry.warmctl.io; a mirror next to the GPUs; or a shared file systemOne store per installation: a shared ReadWriteMany volume, or an S3-compatible bucket (experimental), tracked by the cluster's PodSnapshotContent objects
Across clusters and cloudsPush once and pull wherever the GPUs and driver branch match: another cluster, another cloud, on premises. warmctl mirror copies models between registriesRestores within the installation that took the checkpoint; the docs do not describe moving checkpoints to another cluster
Prebuilt snapshotsA public catalog of popular models with measured restore timesNone; you checkpoint your own pods
EnginesvLLMvLLM, SGLang, TensorRT-LLM
StatusBeta (Status and limits)Not yet recommended for production-critical workloads

Sources for Dynamo Snapshot: its README, Storage, S3 storage contract and Limitations, as of v0.2.0.

When to pick something else

When warmctl fits

What none of them does yet

None of these restores an engine that spans several nodes, and none restores onto another GPU model or driver branch: GPU state is only valid where it was taken (why). What warmctl does not support yet is listed in Status and limits.