Devotd Github
NewInference & serving

warmctl v2.0.0-beta.18 — Bundling DMTCP v5.0.0-warmctl.2

warmctl v2.0.0-beta.18 bundles TensorRails DMTCP v5.0.0-warmctl.2, which excludes resident memory filled only with zeros from checkpoints, shrinking the Qwen3-0.6B process image from 8,582 MiB to 6,065 MiB on an RTX 3090.

Repositorytensorrails/warmctl ↗

warmctl v2.0.0-beta.18 bundles TensorRails DMTCP v5.0.0-warmctl.2, which excludes resident memory filled only with zeros from checkpoints, shrinking the Qwen3-0.6B process image from 8,582 MiB to 6,065 MiB on an RTX 3090.

GitHub description: Snapshot a warmed-up vLLM engine and restore it in seconds

stars
★ 17
Forks
0
Language
Go
License
Apache-2.0
Read original source ↗View on GitHub ↗

warmctl is a CLI tool that saves a warmed-up vLLM engine process as a snapshot and restores it within seconds. v2.0.0-beta.18 came out on November 4, 2026 via GitHub commit e3116cb (a merge of release PR #74), and it carries the TensorRails DMTCP fork v5.0.0-warmctl.2 along with it. The core change is that the checkpoint no longer leaves behind resident memory filled only with zeros, and that during restoration the readers share large contiguous regions. The commit modifies CHANGELOG.md and docs/dmtcp.md, and bumps the VERSION and SHA256SUMS under internal/dmtcp from v5.0.0-warmctl.1 to v5.0.0-warmctl.2.

The effect of this change can be read off the measurements the repository left behind. On a single RTX 3090, the process image size of Qwen3-0.6B dropped from 8,582 MiB to 6,065 MiB, the time until a /health response fell from 4.6–5.1 seconds to 4.0–4.4 seconds, and the answers were identical. The side that pins CUDA host memory (the CPU-side embedding table of Qwen3.8-Flash-Next) does not change in size, because it excluded zero pages from the start. The same CHANGELOG entry also contains the note that the staged copy of `up` (a snapshot on FUSE or a `--compress` save) skips zero pages and leaves them as holes, as well as the figure that 57% of the process image in the CRIU image of GLM-5.3-Flash consists of zero pages. The fork is distributed from a separate repository together with the source, Debian 12-compatible linux amd64 and arm64 packages, checksums, and the fdkeep plugin.

Still, the point where the evidence runs out is clear. The recorded numbers come from the combination of one RTX 3090 and Qwen3-0.6B, so it is too early to expect the same ratio on a different GPU or with a larger model. New snapshots are baked with this release, and existing snapshots can be restored on either of the two DMTCP versions, but a CLI release alone does not change runtime images that are already deployed, so the new image or the `--dmtcp-dir` and `--dmtcp-plugin` paths must be specified. The fork packages require glibc 2.36 or later.