Module activation_quantization

Module activation_quantization 

Source
Expand description

2026-09-30: --activation-quantization: which activation precision each decode projection runs at, as a function of the projection family and of the number of rows in the launch (decode batch rows, MTP verify rows included).

A value is either one format for every row count, or a ladder that maps row ranges to formats, optionally overridden per projection family:

spec   := ladder ("," family ":" ladder)*
ladder := format | rung (";" rung)*
rung   := range "=" format
range  := N | N "-" | N "-" M              (1-based rows, inclusive)
format := "bf16" | "fp8" | "nvfp4" | "declared" | "adaptive"
family := "gdn" | "attn" | "ffn" | "moe" | "lm_head"
  • bf16, fp8 and nvfp4 run that activation format through one fixed-order kernel family per weight format, so a row’s output bits do not depend on the row count or on the other rows. declared is the checkpoint’s declared input-activation format per layer (quantization_config), run the same way.
  • adaptive is today’s routing: each dispatch site picks its kernel by row count as it did before this flag, byte for byte. The named value adaptive is the ladder 1-=adaptive; a rung may also hand only its range to it (1=bf16;2-=adaptive).
  • A ladder’s rungs start at row 1, leave no gap and do not overlap, and the last one is open-ended. A family override replaces the base ladder for that family only.

The same shape, a rule per (family, row range), is what the auto-fuser’s circuit rules express per row range (kernels/circuits); a later step makes the circuit read this value.

Owner: config (quantization). Invariants:

  • Pure: no environment, no I/O, no process state. The serve parses the flag here once and publishes the result; every dispatch site asks ActivationQuantization::route.
  • Its Display form is canonical and parses back to an equal value.

Structs§

ActivationQuantization
2026-09-30: A parsed --activation-quantization value.
Ladder
2026-09-30: Rungs covering every row count from 1, in order, without gaps or overlaps.
Rung
2026-09-30: One rung: rows lo..=hi (hi None: no upper bound) run format.

Enums§

ActQuantFormat
2026-09-30: The activation format of one rung.
ProjFamily
2026-09-30: The projection families a family override can name.