Skip to content

feat(challenges): static operator-norm base tables behind ont-static-base - #269

Draft
Acentelles wants to merge 2 commits into
LayerZero-Labs:markos/recursion-integrationfrom
Acentelles:feat/static-operator-norm-tables
Draft

Acentelles wants to merge 2 commits into
LayerZero-Labs:markos/recursion-integrationfrom
Acentelles:feat/static-operator-norm-tables

Conversation

@Acentelles

@Acentelles Acentelles commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds generated static base tables for the D64 selective-L2 operator-norm sampler, so a verifier can use precomputed tables instead of deriving them at run time. A generator script (scripts/gen_op_norm_static_base.py) produces src/sampler/op_norm/static_base.rs.

The tables are compiled in only with the new feature ont-static-base, which is off by default. Without the feature, the sampler and its outputs are unchanged.

There is no change to the proof, the transcript or the setup.

Changes

  • akita-challenges: the ont-static-base feature, the generated static_base.rs, the sampler hook in sampler/op_norm.rs, and the generator script.

Measured effect

Standalone rows on this base are not measured. The feature was measured only as part of a larger recursion integration stack, where its share was not isolated. A consumer has to enable ont-static-base to see any effect.

This PR is a draft until the standalone figure is measured.

Reproduce

Regenerate the tables with the script and diff them against the committed file. For the row effect, run the a16z/jolt#1911 recursion example with the Akita dependency on this branch and ont-static-base enabled, against ee03aa30.

Base

This PR targets markos/recursion-integration (ee03aa30), the recursion integration branch where this change was measured. It merges into main with the rest of that branch.

Current integration figures (whole stack, not this PR alone)

These are figures for the whole recursion integration stack: Jolt's recursion example with this PR's Akita changes together with the other changes on this branch, the Jolt-side verifier changes and the guest build settings. They are not a measurement of this PR alone.

Stack Inner $2^{12}$ rows Inner $2^{20}$ rows Hosts
Recursion head with these Akita changes 57,813,926 147,659,422 Census-reconciled on a Ryzen 9 5900XT; fold measured on EPYC 9124 and Ryzen 9 7950X
The same, with the follow-on no-carry tensor contraction fold 57,804,752 147,597,159 EPYC 9124

The Akita proof is 72,672 bytes at $2^{12}$ and 75,817 bytes at $2^{20}$ in both stacks, unchanged.

Receipt hashes (whole / closing):

  • census: 02a12d07 / 72c63ef2;
  • first fold: d23b9ab4 / 16ca914c;
  • follow-on fold: ea4ddf32 / f069836d.

…base

Adds generated static base tables for the D64 selective-L2 operator-norm
sampler, with the generator script. The tables are compiled in only with the
ont-static-base feature, which is off by default; without it the sampler is
unchanged.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant