IterativeDecoderBudgetScenario
Robotics scenarios · Implementation: mlsysim/engine/scenario_definitions/robotics/learning.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
machine’s one-pass chunk decoder against an iterative head that encodes once and runs denoising_steps dependent evaluations in denoising_latency, and a flow_steps head at the same cost per evaluation, on the setpoint step and the renewal period with renewal_jitter held free.
Notes
Equation: Per-evaluation time=(denoising_latency-encode)/denoising_steps; latency=encode+evaluations*per_evaluation.
Assumptions: Equal sequential evaluation cost shared by compared decoder heads and a supplied jitter allowance.
Excludes: Convergence/quality differences, overlap, and measured worst-case execution guarantees.
References
Implementation references: mlsysim.physics.robotics.learning.calc_iterative_decoder_latency, mlsysim.physics.robotics.learning.calc_max_decoder_evaluations. These helper contracts state the source assumptions; the scenario binds their inputs and derives the displayed ratios and budgets.
Examples
The named registry scenario supplies the stated inputs; this is a modeled calculation, not a new measurement.
>>> from mlsysim import Scenarios
>>> scenario = Scenarios.LatchDecoderBudget
>>> scenario.evaluations_within_renewal
14Attributes
| Name | Description |
|---|---|
| denoising_latency | |
| denoising_overrun_under_jitter | Denoising completion minus renewal deadline in ms after adding jitter; negative values retain slack. |
| denoising_slack | Renewal period minus denoising latency in ms, without jitter reserve. |
| denoising_steps | |
| encode | |
| evaluations_within_renewal | Whole evaluations admitted by renewal time after reserving jitter, using max_evaluations. |
| evaluations_within_step | Whole decoder evaluations admitted by the setpoint period, using max_evaluations. |
| flow_latency | Encoding plus flow_steps equal-cost evaluations via calc_iterative_decoder_latency; assumes the inferred evaluation cost transfers to this head. |
| flow_steps | |
| machine | |
| one_pass_end_under_jitter | One-pass completion time in ms after adding the declared jitter allowance. |
| one_pass_latency | Declared one-pass chunk inference latency in ms; no timing experiment is performed here. |
| one_pass_slack | Renewal period minus one-pass latency in ms; negative values indicate an overrun. |
| per_evaluation | Average dependent decoder-evaluation time in ms after subtracting the one-time encode cost from denoising latency. |
| renewal_jitter | |
| renewal_less_jitter | Usable renewal time in ms after reserving jitter. |
| renewal_period | Machine chunk-renewal period in ms, copied from machine.chunk_period. |
| setpoint_step | Machine setpoint period in ms, copied from machine.chunk_step. |
Methods
| Name | Description |
|---|---|
| evaluation_room | Unrounded count of equal-cost evaluations fitting a supplied time budget after encoding; may be negative when encoding alone exceeds budget. |
| latency_at | Time for encoding plus a supplied integer evaluation count via calc_iterative_decoder_latency. |
| max_evaluations | Whole evaluations fitting a time budget via calc_max_decoder_evaluations; inherits the helper’s infeasible-budget handling. |
evaluation_room
engine.scenario_types.IterativeDecoderBudgetScenario.evaluation_room(budget)Unrounded count of equal-cost evaluations fitting a supplied time budget after encoding; may be negative when encoding alone exceeds budget.
Equation: ((budget - self.encode) / self.per_evaluation).to(’’).magnitude
latency_at
engine.scenario_types.IterativeDecoderBudgetScenario.latency_at(evaluations)Time for encoding plus a supplied integer evaluation count via calc_iterative_decoder_latency.
Equation: The calculation follows the stated accounting rule; the method body shows each intermediate term.
max_evaluations
engine.scenario_types.IterativeDecoderBudgetScenario.max_evaluations(budget)Whole evaluations fitting a time budget via calc_max_decoder_evaluations; inherits the helper’s infeasible-budget handling.
Equation: The calculation follows the stated accounting rule; the method body shows each intermediate term.
machine
Type: Any.
Declared default: required.
denoising_steps
Type: int.
Declared default: required.
flow_steps
Type: int.
Declared default: required.
encode
Type: Quantity.
Declared default: required.
denoising_latency
Type: Quantity.
Declared default: required.
renewal_jitter
Type: Quantity.
Declared default: required.
setpoint_step
engine.scenario_types.IterativeDecoderBudgetScenario.setpoint_step
Machine setpoint period in ms, copied from machine.chunk_step.
Equation: self.machine.chunk_step.to(‘ms’)
renewal_period
engine.scenario_types.IterativeDecoderBudgetScenario.renewal_period
Machine chunk-renewal period in ms, copied from machine.chunk_period.
Equation: self.machine.chunk_period.to(‘ms’)
one_pass_latency
engine.scenario_types.IterativeDecoderBudgetScenario.one_pass_latency
Declared one-pass chunk inference latency in ms; no timing experiment is performed here.
Equation: self.machine.chunk_inference_latency.to(‘ms’)
per_evaluation
engine.scenario_types.IterativeDecoderBudgetScenario.per_evaluation
Average dependent decoder-evaluation time in ms after subtracting the one-time encode cost from denoising latency.
Equation: ((self.denoising_latency - self.encode) / self.denoising_steps).to(‘ms’)
flow_latency
engine.scenario_types.IterativeDecoderBudgetScenario.flow_latency
Encoding plus flow_steps equal-cost evaluations via calc_iterative_decoder_latency; assumes the inferred evaluation cost transfers to this head.
Equation: The calculation follows the stated accounting rule; the method body shows each intermediate term.
one_pass_slack
engine.scenario_types.IterativeDecoderBudgetScenario.one_pass_slack
Renewal period minus one-pass latency in ms; negative values indicate an overrun.
Equation: (self.renewal_period - self.one_pass_latency).to(‘ms’)
denoising_slack
engine.scenario_types.IterativeDecoderBudgetScenario.denoising_slack
Renewal period minus denoising latency in ms, without jitter reserve.
Equation: (self.renewal_period - self.denoising_latency).to(‘ms’)
one_pass_end_under_jitter
engine.scenario_types.IterativeDecoderBudgetScenario.one_pass_end_under_jitter
One-pass completion time in ms after adding the declared jitter allowance.
Equation: (self.one_pass_latency + self.renewal_jitter).to(‘ms’)
denoising_overrun_under_jitter
engine.scenario_types.IterativeDecoderBudgetScenario.denoising_overrun_under_jitter
Denoising completion minus renewal deadline in ms after adding jitter; negative values retain slack.
Equation: (self.denoising_latency + self.renewal_jitter - self.renewal_period).to(‘ms’)
renewal_less_jitter
engine.scenario_types.IterativeDecoderBudgetScenario.renewal_less_jitter
Usable renewal time in ms after reserving jitter.
Equation: (self.renewal_period - self.renewal_jitter).to(‘ms’)
evaluations_within_step
engine.scenario_types.IterativeDecoderBudgetScenario.evaluations_within_step
Whole decoder evaluations admitted by the setpoint period, using max_evaluations.
Equation: self.max_evaluations(self.setpoint_step)
evaluations_within_renewal
engine.scenario_types.IterativeDecoderBudgetScenario.evaluations_within_renewal
Whole evaluations admitted by renewal time after reserving jitter, using max_evaluations.
Equation: self.max_evaluations(self.renewal_less_jitter)