DynoSim Sweep Reference
aisimulate recommend --stack dynamo searches AISimulate engine configuration plus Dynamo Router
and Planner domains. Each selected result is a concrete prediction YAML. For a guided workflow, see
Sweep DynoSim Configurations.
Command
Configuration Sections
Recommendation accepts the prediction sections plus search controls:
Unknown fields are rejected. Conditional validation runs after each candidate is materialized.
When traffic is omitted, recommendation uses the same default as prediction: 100 independent
synthetic requests at concurrency 10, with 1,024 input tokens and 128 output tokens per request.
Domain Syntax
Choices
Use choices for categorical or explicitly enumerated values:
Numeric Ranges
Use range for numeric domains:
scale is linear by default. Use log only for positive bounds. A stepped integer range includes
its upper bound when the step lands on it.
Presets
A preset covers every knob in its smallest configuration group.
- Omit
presetor set it todefaultto use the built-in complete mappings. - Supply a list of names or complete mappings to search those mappings as categorical choices.
- Set
preset: falseorpreset: {}to search the group’s independent knob domains. - Do not combine an active preset with an independent domain covered by that preset.
Parallelism presets are special. The default invokes AISimulate’s feasible parallel-configuration
enumeration and projection. A custom list treats each complete parallelism mapping as one flat
choice. With preset: false, each parallelism knob becomes an independent dimension before
feasibility filtering.
Traffic Domains
Recommendation accepts choices or range on traffic.load.concurrency, request or session
rate, traffic.load.speedup for trace timestamps, and traffic.load.fraction for
KV-capacity-relative load. The
kv_capacity_fraction load type is recommendation-only: it derives candidate concurrency from
that candidate’s estimated KV capacity. Fractions above 1 are valid and model oversubscribed load.
For a swept load, use stop.requests_per_load_unit or stop.sessions_per_load_unit to scale the
simulation length with each concrete candidate. Fixed stop.requests and stop.sessions keep the
same simulation length across the load domain.
Optimization
optimization.target accepts:
goodput and goodput_per_gpu require evaluation.sla with either e2e_ms or both ttft_ms and
itl_ms.
The public recommendation schema does not expose pareto_objectives. Custom objective lists remain
available only through the legacy Sweeper Python SDK.
optimization.constraints.min_candidate_gpus and max_candidate_gpus bound the simulated GPU
footprint. When engine.hardware: auto, set one concrete optimization.hardware value.
Recommendation searches aggregated and disaggregated modes by default, and vLLM and SGLang
backends by default. TensorRT-LLM can be selected explicitly for aggregated mode. The default
engine.context_length: max resolves from the model’s Hugging Face configuration.
Optimizer Controls
Failed, infeasible, unsupported, and cached suggestions consume the trial budget. Every active topology branch must receive at least one trial.
Output
Recommendation writes:
Each numbered YAML contains one concrete prediction configuration with no optimization,
optimizer, preset, domain, or auto value. Run any result directly:
Scalar objectives write all feasible candidates in deterministic best-to-worst order. Pareto writes the complete nondominated front; its deterministic file order is not a scalar ranking.