Skip to content

zorch.sumcheck.jagged.types

Scheme-agnostic dataclasses of the jagged sumcheck round engine: the fixed-width round caps, the interpolation constants, and the static round schedule (the LogUp-specific state/planes live in zorch.logup_gkr._jagged_types).

RoundWidthCaps dataclass

Fixed round-buffer widths for the size-invariant jagged sumcheck: with caps set, every round of a phase runs at one static operand shape -- the live prefix tracked by the round's live operand -- so one compiled round kernel serves every round, layer, and shard under the caps. Hashable (a jit static arg on the per-layer round zone).

elements bounds the row-phase plane/gather width -- the flat element count across chips (sum(row_counts)), not a per-chip row count (>= the round-0 even-padded layout, a multiple of 4); eq_row bounds the row-eq table (>= 2^nrv, even); interaction bounds the dense-phase state and eq width (>= 2^niv, a multiple of 4).

Source code in zorch/sumcheck/jagged/types.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@dataclass(frozen=True)
class RoundWidthCaps:
    """Fixed round-buffer widths for the size-invariant jagged sumcheck: with caps set,
    every round of a phase runs at one static
    operand shape -- the live prefix tracked by the round's `live` operand --
    so one compiled round kernel serves every round, layer, and shard under
    the caps. Hashable (a jit static arg on the per-layer round zone).

    `elements` bounds the row-phase plane/gather width -- the flat element
    count across chips (`sum(row_counts)`), not a per-chip row count (>= the
    round-0 even-padded layout, a multiple of 4); `eq_row` bounds the row-eq
    table (>= 2^nrv, even); `interaction` bounds the dense-phase state and eq
    width (>= 2^niv, a multiple of 4)."""

    elements: int
    eq_row: int
    interaction: int