Reference

Profiles

A profile is YAML laid over warmctl's defaults. Only schema, id, model, parallel and hardware are needed; every other key has a default.

qwen3-8b-h100-tp1.yaml
schema: warmctl.profile/v1
id: qwen3-8b-h100-tp1
model: {id: Qwen/Qwen3-8B, revision: b968826d…, served_names: [qwen3-8b]}
parallel: {tp: 1}
hardware: [h100-80gb-sxm]
vllm:
  max-model-len: 32768
  max-num-seqs: 64
  kv-cache-memory-bytes: 47244640256
  enable-chunked-prefill: true
graphs:
  mode: FULL_AND_PIECEWISE
  decode_batches: [1, 2, 4, 8, 16, 24, 32, 48, 64]
warmup:
  decode_prompt_tokens: 32
  prefill_tokens: [512, 2048, 8192]
resources: {memory: 96GiB}

The catalog's profiles ship in the binary: warmctl profile list. A key set to null removes the default. build --set vllm.<flag>=…, env.<NAME>=… or ipc=… overrides a key for one build.

Keys

KeyDefault
schemawarmctl.profile/v1
idthe profile's name
imagepinned vLLM imagethe engine's container image, by digest
model.id, .revisionHugging Face id and the revision the weights are
model.served_namesnames the API answers to
model.container_pathwhere the weights are mounted in the container
paralleltp, and dp, ep for data and expert parallel, all within one host
hardwarethe hardware ids the profile is meant for
vllmsee belowany vllm serve flag, without the dashes in front
envsee belowenvironment of the engine; null unsets a default
graphs.modeFULL_DECODE_ONLYCUDA graph mode: FULL_DECODE_ONLY, FULL_AND_PIECEWISE or PIECEWISE
graphs.decode_batches[1, 2, 4, 8]batch sizes captured as graphs
graphs.compile_mode3vLLM compilation level
warmup.prefill_tokensprompt lengths warmed before the snapshot
warmup.decode_prompt_tokensprompt length for the decode batches
warmup.generated_tokens32tokens generated per warmup request
canary.modewarnbitwise, tolerance or warn: how strictly a restore must match the donor
canary.tolerance0.001for tolerance
canary.prefix_tokens512length of the canary prompt
resources64GiB · 16GiB · 16memory, shm, cpus, pids of the container
restore.warmupcanarywhat runs after a restore: none, canary or full
restore.cuda_restoreautoauto, serial or parallel
ipcautocross-process GPU memory: auto, interpose (NVIDIA cuInterpose) or native

Defaults that matter

The engine always runs with what makes a snapshot possible: enable-sleep-mode, enable-nccl-comm-suspend and warmctl's worker extension. It also gets max-model-len: 2048 and 1 GiB of KV cache, so a serving profile sets both. Its compile and JIT caches live under /workspace, which the snapshot carries, and Hugging Face runs offline. warmctl profile show ID prints everything a profile resolves to.

Hardware ids

IdGPU
h100-80gb-sxmNVIDIA H100 80GB HBM3, NVLink
h200-141gbNVIDIA H200
b200-180gbNVIDIA B200
l40s-48gbNVIDIA L40S, PCIe

A snapshot's platform tag is the GPU count, the hardware id and the driver it was built with: 8xh100-80gb-sxm-580.173.02. Platforms and drivers explains why.