Inference optimization execution plan
Status: active workplan. Updated: 2026-08-24.Outcome
InferCrane should turn an operator objective into a qualified serving decision without claiming that an estimate is proof:Current baseline
Already implemented and verified:- reviewed, immutable model recipes and vLLM balanced/interactive/throughput starting profiles;
- replaceable
optimizer.Sourceand deterministic offlineoptimize propose; - optional pinned AIConfigurator
0.11.0modeled-candidate source behind that boundary, including a real Linux package contract and explicit catalog fallback; - exact provider/runtime compatibility evidence with simulated candidates excluded by default;
- immutable revisions and DeploymentSpecs;
- AIPerf benchmark execution and persisted TTFT, TPOT, throughput, goodput, GPU-utilization, and sourced-cost evidence;
- exact-workload Inference Lab comparisons;
- evaluator-neutral signed semantic-quality evidence;
- advisory Serving Plans, Release Guard, promotion, rejection, rollback, and Inference Passports;
- experimental Dynamo aggregated/disaggregated topology, KV-aware routing, and bounded KVBM intent.
AISimulate decision
InferCrane will use AISimulate as an optional modeled-candidate source, not as its domain model, source of truth, deployment engine, or qualification authority. As of 2026-08-24:- the published
aisimulatePython artifact is0.1.0.dev1; - the implementation currently lives with Dynamo and the proposed standalone repository is not publicly accessible;
- upstream’s accepted transition plan targets AISimulate
0.12.0, AIConfigurator0.12.0, and Dynamo1.5.0for 2026-09-16; - upstream explicitly requires public packages, documentation, result-schema mapping, parity tests, performance comparison, critical integration validation, and rollback instructions before deprecating AIConfigurator.
- Keep the pinned AIConfigurator adapter optional and out of the control-plane runtime dependency graph; never import its objects into InferCrane domain or persistence types.
- Do not ship
aisimulate==0.1.0.dev1in an InferCrane release. - Keep the existing
optimizer.Sourceas the stable InferCrane boundary. - Build the campaign and evidence pipeline independently of either upstream package.
- Replace the candidate source with AISimulate only after the upstream readiness gates below pass.
AISimulate admission gates
All are required:- stable public release, repository, SDK/CLI documentation, and result schema;
- Apache-2.0 artifact and path-level transitive-license review;
- immutable package/image pins, hashes, SBOM, vulnerability scan, and rollback pin;
- clean installation and smoke tests on InferCrane’s supported execution platform;
- explicit model, GPU, runtime, precision, and topology support inventory;
- deterministic bounded execution with CPU, memory, time, and output-size limits;
- no provider credentials, prompt bodies, response bodies, or customer secrets in inputs or output;
- malformed, partial, unknown-enum, timeout, crash, and version-skew fixture coverage;
- AIC/AISimulate parity results within upstream’s published tolerance;
- InferCrane calibration comparing modeled versus measured results on at least three model families, two workload shapes, and two hardware classes;
- modeled rows remain labeled
MODELEDand can never satisfy a measured Release Guard requirement.
Adapter shape
Run AISimulate out of process behind a pinned helper image or executable:Dependency-ordered milestones
M0 — Conservative proposal source
Status: complete. Delivered:- reviewed-catalog source;
- immutable input digest and candidate identity;
- objective-aware ordering;
- strict missing-evidence responses;
- offline CLI and loadable candidate files;
- tests, ADR, capability matrix, and user documentation.
M0.5 — Pinned AIConfigurator candidate source
Status: complete. Delivered:- out-of-process, versioned and bounded estimator protocol;
- exact
aiconfigurator==0.11.0andplotext==5.3.2compatibility tuple; - credential-scrubbed, offline-by-default execution;
- explicit
modeledevidence and upstream result digest; - executable-topology filtering and single mutation-owner preservation;
- catalog fallback, doctor UX, real-package contract, multi-model catalog regression, ADR and docs.
M1 — Durable optimization campaigns
Priority: P0. Impact: highest. Effort: medium. Status: local coordinator complete; production driver and real-GPU qualification pending. Delivered locally: immutable idempotent campaigns, ordered candidates, bounded expiring approval, fenced transitions, separate predicted/actual evidence, deterministic aggregate state, cancellation, cleanup, tenant isolation, REST/CLI inspection, PostgreSQL restart-safe persistence, and a bounded durable operation handler. The coordinator persists each boundary before side effects, measures all viable candidates before ranking, ignores proposal order once measurements exist, and links separate benchmark, revision-bound quality, Lab-ranking, and Release Guard evidence. Exact-workload Lab ranking fails closed on missing cost or incompatible evidence, while explicit SLO violations reject. The coordinator preserves retryable lost-response adoption, fails expired authority into cleanup, preserves permanent driver failures, treats unknown rank or guard results as inconclusive, and stops at human promotion. Approval still starts no provider mutation because a production composite driver is not registered. AddOptimizationCampaign and CandidateRun durable state without introducing a workflow engine.
Reuse InferCrane operations, leases, revisions, benchmark evidence, quality evidence, Lab, and Release
Guard.
States:
- proposal and inspection are free of provider mutation;
- paid execution requires explicit candidate count, maximum spend, expiry, and approval identity;
- every candidate gets a durable idempotency key and immutable revision;
- client and control-plane restarts resume safely;
- partial candidate failure does not erase successful evidence;
- cancellation stops future work and deterministically cleans run-owned resources;
- promotion remains a separate human-authorized Release Guard action;
- predicted and actual outcomes are recorded separately.
- the selected Lab ranking identity is persisted before Release Guard runs, so a crash cannot merge ranking and release evidence into one ambiguous boundary;
- crash/restart, duplicate request, cancellation, stale lease, partial benchmark, failed quality gate, promotion race, and cleanup-to-zero tests pass;
- one local fixture campaign completes from proposal through rejected bad candidate and cleanup;
- no unapproved provider mutation is reachable.
M2 — Versioned optimization capability registry
Priority: P0. Impact: high. Effort: medium. Status: local foundation complete; mechanism-by-mechanism GPU qualification ongoing. Delivered locally: exact version/model/precision/accelerator descriptors, fail-closed conflict and downgrade behavior, concrete NVIDIA accelerator alias normalization, generic Kubernetes GPU-resource rejection, compilers for runtime-owned continuous batching, qualified vLLM prefix caching, bounded scheduler token budgets, and one-owner Dynamo proposal compilation, plus a PostgreSQL-enforced binding between candidate deployment, immutable revision, base model artifact, and optimized artifact provenance. Attention backend, quantization, speculative decoding, LMCache, and distributed topology descriptors remain deferred until their exact tuples qualify. Represent mechanisms as compatibility facts, not arbitrary flags:- vLLM and SGLang continuous batching;
- prefix caching;
- chunked prefill and scheduler token budgets;
- attention backend selection;
- weight and KV-cache precision;
- speculative decoding;
- aggregated versus prefill/decode topology;
- KV reuse/offload.
- exact-version compatibility, enum expansion, conflicting mechanisms, model mismatch, accelerator mismatch, and downgrade tests pass;
- every produced argument links to a capability descriptor and evidence source.
M3 — AISimulate modeled-candidate source
Priority: P1 after upstream gates. Impact: high for multi-GPU search. Effort: medium. Status: intentionally blocked on the upstream admission gates above. AIConfigurator remains the optional replaceable source; no unstable AISimulate development artifact is shipped. Use AISimulate for GPU-free prediction, recommendation, topology search, and scheduler-aware replay. Request only the top bounded candidates, then pass them through InferCrane’s capability registry. Persist:- exact AISimulate/Dynamo versions;
- model/system database identity;
- input digest and output digest;
- modeled TTFT, TPOT, throughput, and topology;
- unsupported fields and warnings;
- model age and calibration error where available.
- isolated adapter conformance passes;
- the top-N result is deterministic for pinned inputs;
- unsupported tuples fail closed;
- modeled-to-measured error and top-k recall are recorded, not hidden;
- no modeled candidate can bypass AIPerf and quality gates.
M4 — Immutable quantized-artifact pipeline
Priority: P1. Impact: very high. Effort: medium-high. Status: provenance and control-plane lifecycle complete; external builds and GPU qualification pending. Delivered locally: LLM Compressor and ModelOpt builder boundaries, FP8/AWQ/GPTQ/NVFP4 plan presets, digest-pinned external builders, base/calibration/config/hardware/license provenance, immutable output attestation, exact candidate/revision/quality binding, and failure/duplicate/cross-tenant tests. Integrate LLM Compressor first. Add ModelOpt only for NVIDIA/TensorRT-specific paths where it adds a qualified capability. Start with:- FP8 weight/activation candidates on compatible Hopper/Ada paths;
- AWQ/GPTQ/Marlin weight-only candidates for memory-constrained serving;
- KV-cache quantization only after long-context quality and stability qualification.
- corrupted output, incompatible GPU/runtime, calibration mismatch, quality regression, builder crash, duplicate build, and artifact cleanup tests pass;
- quantized candidates cannot promote without signed semantic-quality evidence;
- exact baseline and candidate AIPerf workloads are comparable.
M5 — Speculative-decoding candidate adapter
Priority: P1. Impact: high for decode-bound workloads. Effort: medium. Status: artifact/provenance adapter complete; runtime activation and GPU qualification pending. EAGLE-3, MTP, and DFlash plans use the vLLM Speculators external-builder boundary and require an exact verifier plus quality review. No runtime speculative flag becomes executable until acceptance rate, tail latency, streaming, cancellation, and output-equivalence evidence exists for that tuple. Reuse vLLM Speculators and upstream runtime support for EAGLE, MTP, DFlash, draft-model, and n-gram candidates. Enable only mechanisms listed for the exact model/runtime pair. Measure:- acceptance rate and accepted tokens per step;
- TTFT, TPOT, output throughput, goodput, memory, and failure rate;
- semantic-quality evidence and deterministic structured/tool-call behavior;
- performance across short, long-generation, and overload workloads.
- incompatible draft/target pairs are rejected before GPU creation;
- low acceptance or increased tail latency causes candidate rejection;
- speculative streaming, cancellation, and rollback pass real-runtime qualification.
M6 — LMCache and Dynamo/NIXL qualification
Priority: P1. Impact: high for repeated-prefix and distributed workloads. Effort: high. Status: Dynamo topology locally simulated; LMCache registered but deliberately non-executable; real GPU/NIXL/cache qualification pending. Add executable LMCache configuration behind the serving topology contract. Compare:- engine-native prefix cache baseline;
- LMCache local CPU/disk reuse;
- Dynamo KV-aware routing;
- Dynamo prefill/decode with NIXL transfer;
- KVBM where the exact backend combination is qualified.
- stale, corrupted, cross-model, cross-tenant, storage-full, worker-loss, transfer-timeout, and topology-downgrade tests pass;
- real multi-GPU results show which workload shapes benefit and which regress.
M7 — TensorRT-LLM runtime adapter
Priority: P2. Impact: high for a narrow set of large-volume NVIDIA tuples. Effort: high. Status: immutable engine-build provenance complete; runtime adapter and real qualification pending. Do not make TensorRT-LLM the universal default. Support only exact upstream-qualified model/GPU/precision tuples. Treat the engine build as an immutable artifact with its own provenance, hardware compatibility, build duration, storage, and rollback behavior. Exit gate:- path-level licensing and transitive redistribution review passes;
- engine build and runtime images are digest-pinned;
- build failure, architecture mismatch, CUDA mismatch, plugin mismatch, and rollback tests pass;
- measured benefit survives quality and total-cost comparison including engine-build amortization.
M8 — llm-d and AIBrix composition
Priority: P2, customer-demand driven. Impact: medium for Kubernetes fleets. Effort: medium-high. Status: replaceable ownership boundaries registered; discovery/lifecycle adapters and cluster qualification pending. Use their upstream APIs and controllers for scheduling, routing, model download, and heterogeneous fleet behavior. InferCrane owns stable endpoints, lifecycle intent, evidence, Release Guard, and qualified Serving Plans. It does not fork or reproduce their schedulers. Begin with discovery, manifest compilation, observation, and conformance. Add lifecycle ownership only after exact field ownership, finalizers, upgrade compatibility, and cleanup pass Kind plus real GPU cluster qualification.Qualification corpus
Avoid optimizing around one model. Initial evidence must cover:- dense instruction: Mistral 7B and Llama 3.1 8B;
- reasoning/distilled: DeepSeek R1 Distill 7B;
- coding: Qwen2.5 Coder 7B;
- embeddings: BGE-M3;
- multimodal: Gemma 3 4B or Qwen2.5-VL 7B;
- later multi-GPU MoE: one current supported DeepSeek, Kimi, or GLM family only after exact runtime, license, and hardware qualification.
- interactive short prompt;
- repeated shared prefix;
- long context;
- long generation;
- structured output and tool calling;
- concurrency 1, 8, 32, and bounded overload;
- burst and steady-state arrival patterns.
Product metrics and stopping rules
Track per exact serving tuple:- TTFT p50/p95/p99;
- TPOT p50/p95/p99;
- request and output-token throughput;
- SLO goodput and goodput per sourced currency unit;
- GPU utilization and memory headroom;
- cold and warm readiness;
- semantic-quality score and pass/fail;
- modeled versus measured error;
- provision, runtime, and request failure rates;
- realized versus predicted cost after promotion.
- it beats or matches a stock qualified baseline on its declared objective;
- configured SLO and quality gates pass;
- results repeat within a declared tolerance;
- failure, rollback, and cleanup behavior pass;
- the exact software, model, artifact, hardware, workload, and cost source are reproducible;
- at least one workload where it should not be used is documented.
Recommended execution order
- M1 durable optimization campaigns.
- M2 capability registry.
- Maintain AIConfigurator calibration and prepare AISimulate adapter fixtures, but wait for stable upstream admission gates.
- M4 quantized artifacts with LLM Compressor.
- Activate M3 AISimulate when stable and calibrate it against real measurements.
- M5 speculative decoding.
- M6 LMCache plus real Dynamo/NIXL qualification.
- M7 narrow TensorRT-LLM support.
- M8 llm-d/AIBrix only from demonstrated Kubernetes demand.
Primary upstream references
- AIConfigurator transition decision: https://github.com/ai-dynamo/aiconfigurator/issues/1517
- AIConfigurator: https://github.com/ai-dynamo/aiconfigurator
- Dynamo: https://github.com/ai-dynamo/dynamo
- vLLM: https://github.com/vllm-project/vllm
- vLLM Speculators: https://github.com/vllm-project/speculators
- LLM Compressor: https://github.com/vllm-project/llm-compressor
- ModelOpt: https://github.com/NVIDIA/Model-Optimizer
- LMCache: https://github.com/LMCache/LMCache
- TensorRT-LLM: https://github.com/NVIDIA/TensorRT-LLM
- llm-d: https://github.com/llm-d/llm-d
- AIBrix: https://github.com/vllm-project/aibrix
- Wafer GPU performance engineering resources: https://github.com/wafer-ai/gpu-perf-engineering-resources