Module require

Module require 

Source
Expand description

2026-10-02: The REQUIRED pipeline of a node: what the circuit’s formats, under the serving policy and the plan’s stated routing, ask each step to compute at. This is the “what we need” view (met circuit precision) and the side every kernel declaration is checked against (super::check).

Where each requirement comes from:

  • inputs and outputs: the formats the plan stores each edge in (the circuit’s, or a rule’s writes); inside a group, the format a rule states the edge is handed on in (holds);
  • act: the input format, unless activation_quantization routes the projection’s family to a fixed format at this row count, or, under adaptive (today’s routing, which the rules encode), the rule states the format its kernels run the activation at;
  • weight: the node’s weight format, its values widened to the activation’s precision for a 16/32-bit activation, consumed natively (E4M3, E2M1) under an 8- or 4-bit one (an NVFP4 weight under FP8 activations by the exact E2M1 to E4M3 conversion);
  • cache: kv_cache_dtype; state: the state’s declared format, a keyed one from its setting (ssm_h_storage from ssm_h_dtype);
  • every accumulation, scale application, element-wise compute, softmax, routing score and blend sum: FP32, the circuit’s reference definition of those ops;
  • any step a plan’s rule states (steps on a pattern element): the stated value. A rule states where today’s routing departs from the reference; the plan prints it, and the kernel must declare the same.

Owner: metrale-circuit (pipeline). Invariants:

  • Pure; a setting the requirement reads and the policy does not state is an error.
  • The base requirement (no plan) and a plan’s requirement differ only where the plan states something: a stored, held or stated format.

Structs§

Need
2026-10-02: Everything a requirement reads besides the node.

Functions§

keyed_state
2026-10-02: The precision a keyed state format holds under settings. The recurrent h-state (ssm_h_storage) holds the precision --ssm-h-dtype names: FP16 under f16 and f16-pool (which differ only in the pool’s size), FP32 under f32.
required
2026-10-02: The pipeline need requires of node n.