Skip to content

perf(labinius): paged root matrix and packed Y/W digits - #265

Open
quangvdao wants to merge 2 commits into
quang/labinius-pcsfrom
quang/labinius-paged-matrix
Open

quangvdao wants to merge 2 commits into
quang/labinius-pcsfrom
quang/labinius-paged-matrix

Conversation

@quangvdao

Copy link
Copy Markdown
Collaborator

Stacked on #229 (quang/labinius-pcs).

This PR ports two refactors that produce identical proofs from Alberto Centelles's Aerie+ Akita patch (@Acentelles, a16z/aerie-private 8770c0f1, experiments/aerie-akita-labinius-dense/akita-base.patch). Alberto wrote the original change; both commits carry his Co-authored-by trailer. His frontend seam, wire34 accessors and catalog rows are not included. They come in later PRs, and his rank-2 .aks rows are invalid under #229's 169-bit parameters.

1. Paged root matrix

  • RootMatrix (akita-labinius-verifier/src/matrix.rs) stores the root matrix as pages of 512 ring elements. AdmittedRootSetup::derive builds it one SHAKE page at a time with the new akita_types::proof::derive_public_matrix_page, so setup no longer materializes the full field prefix. Each page stays under the existing MAX_MATRIX_BYTES and MAX_PREFIX_BYTES caps.

  • BinaryClearSetup::matrix() is replaced by:

    • matrix_element(row, column);
    • matrix_coefficients();
    • matrix_bytes(), matrix_page_count() and matrix_maximum_page_bytes().

    All callers are rewritten: commitment.rs, lowered/weights.rs, lowered/a_remainders.rs, the limb setup, the benches and the tests.

  • channel::matrix_digest_iter streams the matrix digest with the same 4096-residue absorption boundaries.

  • PreparedLimbCommitMatrix stores its transforms in pages. matrix_ntt() is replaced by matrix_ntt_element(row, element).

Change from Alberto's version. His patch predates #230, which moved the limb commit loop into limb_commit_kernel/workspace.rs and reads an eight-element tile of each row as one slice. Here the limb pages are row-aligned: every row starts a new page of at most 512 entries, and 512 is a multiple of ELEMENT_BATCH, so a tile never spans two pages. A private matrix_ntt_tile(row, start, end) returns the tile. A new test, rows_wider_than_one_matrix_page_match_the_integer_definition, runs rank 3 at width 520 against the integer definition.

2. Packed Y/W digits

commit_digits and digit_source (akita-labinius-pcs/src/prover.rs) commit the four-bit image and response digits as SignedBlockPoly::i8 instead of widening each digit to a P::Base. Digits above 15 and lengths that are not a power of two are rejected. prover/digit_source_tests.rs checks:

  • that the packed source has the same coefficients as the dense table;
  • that the complete proofs are byte-identical to a dense-W oracle in Binary, Prime and Both modes, on both families.

The prover-memory paragraph in specs/labinius-pcs.md is updated to match.

Memory at the (22, 8) sample geometry

Heap measured with a counting global allocator, Binary mode, parallel, blake2b, M4 Max. Each phase is reported relative to the heap at its start. The probe was a scratch test and is not committed.

Phase fp128 before → after fp64 before → after
Setup peak (Akita setup + Prover::new) 160.1 → 69.4 MiB 165.8 → 75.0 MiB
Commit peak 150.2 → 30.2 MiB 81.0 → 25.0 MiB
Retained by Committed 142.2 → 22.2 MiB 72.4 → 16.4 MiB
Open peak 535.8 → 295.8 MiB 406.3 → 294.3 MiB
Process peak heap (during open) 811 → 451 MiB 618 → 450 MiB
Largest single allocation 256 → 64 MiB 128 → 64 MiB
Proof bytes 116,419 → 116,419 112,512 → 112,512

Where the savings come from:

  • Setup: the root matrix is derived page by page. The full Prime128 prefix is no longer materialized beside the residues.
  • Commit: Y is stored at one byte per digit, where it used to cost one field element per digit (128 MiB on fp128).
  • Open: W is stored the same way, saving 256 MiB on fp128.

Validation (focused)

Run on the final code, which equals this head except for the spec paragraph:

  • cargo test --profile ci-test -p akita-labinius-verifier -p akita-labinius-prover --features labinius,parallel,transcript-blake2b: all pass, including shipped_mode_and_field_pair_proof_bytes_are_pinned and the new paging tests (paged_setup_has_dense_identity_and_offsets, paged_coefficients_match_dense_at_every_boundary, paged_and_dense_caps_are_not_relaxed, streamed_digest_preserves_frozen_absorption_boundaries, prepared_pages_preserve_first_last_and_boundary_elements).
  • akita-labinius-pcs (labinius,parallel,transcript-blake2b): binary_proof_bytes_are_pinned_for_both_families and the four digit_source_tests pass.
  • cargo fmt --check, scripts/check-rust-file-lines.sh, typos and check-doc-guardrails.sh pass.
  • The full matrix (keccak, non-parallel, dev-protocol, clippy configurations) is left to CI.

🤖 Generated with Claude Code

quangvdao and others added 2 commits October 26, 2026 09:29
Store the seed-derived root matrix as pages of 512 ring elements
(`RootMatrix`), derived one SHAKE page at a time by the new
`derive_public_matrix_page`, so setup never materializes the full field
prefix. `BinaryClearSetup::matrix()` becomes `matrix_element(row, column)`
plus a coefficient iterator, and the matrix digest streams through
`matrix_digest_iter` with the same 4096-residue absorption boundaries.

`PreparedLimbCommitMatrix` stores its transforms in row-aligned pages of
512 entries. The tiled commit loop from #230 reads each eight-element
batch of a row as one slice of one page.

Proof bytes, setup digests and commitments are unchanged.

Ported from Alberto Centelles's Aerie+ Akita patch (a16z/aerie-private
8770c0f1); the row-aligned limb pages and the tile accessor are new.

Co-authored-by: Alberto Centelles <centelles.alberto@gmail.com>
`commit_digits` and `digit_source` commit the four-bit image and response
digits as a `SignedBlockPoly::i8` instead of widening each digit to a
base-field element. Digits above 15 and non-power-of-two lengths are
rejected. A differential test checks that the complete proofs match the
dense representation in all three opening modes for both families.

Ported from Alberto Centelles's Aerie+ Akita patch (a16z/aerie-private
8770c0f1).

Co-authored-by: Alberto Centelles <centelles.alberto@gmail.com>
@github-actions github-actions Bot added spec PR contains a spec implementation PR contains implementation of a spec labels Oct 26, 2026
@github-actions

Copy link
Copy Markdown

Documentation blast radius (advisory)

These regions may need doc/spec/book updates based on changed paths.
This is not a merge gate. See docs/documentation.md.

Changed files in this PR: 21

No blast-radius regions matched. If this PR changes user-visible behavior, consider whether docs/doc-blast-radius.json needs a new region.

@github-actions

Copy link
Copy Markdown

PCS Profile Benchmark

13 of 13 profiles passed.

Times are medians of 3 measured runs after 1 discarded warmup run. Peak RSS is the largest measured value.

Each sample verifies the same proof first with the configured multi-threaded pool and then with one thread. Both timings reuse the same verifier setup.

Merge-base comparisons are available for 13 of 13 profiles. For matching profiles, the head and merge-base binaries ran interleaved on the same runner.

Benchmark shards

CI shard Profiles
1-fp32-base Fp32 dense nv30, direct setup check
Fp32 one-hot nv34, direct setup check
2-fp64-base Fp64 dense nv29, direct setup check
Fp64 one-hot nv35, direct setup check
3-fp128-base Fp128 dense nv28, direct setup check
Fp128 one-hot nv36, direct setup check
Fp128 one-hot nv36, recursive setup check
4-multi-group-direct Fp128 multi-group (final nv34, 4 polys total), direct setup check
5-multi-group-recursive Fp128 multi-group (final nv34, 4 polys total), recursive setup check
6-multi-group-recursive-w8r2 Fp128 multi-group W8R2 (final nv32, 4 polys total), recursive setup check
7-distributed Fp128 one-hot nv32 W2R2, direct setup check
Fp128 one-hot nv32 W4R2, direct setup check
Fp128 one-hot nv32 W8R2, direct setup check

Public opening statements

Public opening statement Profiles
Over Fp32, one committed 30 variable multilinear polynomial with 2^30 coefficients is opened at one 30 coordinate point. Fp32 dense nv30, direct setup check
Over Fp32, one committed 34 variable multilinear polynomial with 2^34 coefficients is opened at one 34 coordinate point. Fp32 one-hot nv34, direct setup check
Over Fp64, one committed 29 variable multilinear polynomial with 2^29 coefficients is opened at one 29 coordinate point. Fp64 dense nv29, direct setup check
Over Fp64, one committed 35 variable multilinear polynomial with 2^35 coefficients is opened at one 35 coordinate point. Fp64 one-hot nv35, direct setup check
Over Fp128, one committed 28 variable multilinear polynomial with 2^28 coefficients is opened at one 28 coordinate point. Fp128 dense nv28, direct setup check
Over Fp128, one committed 36 variable multilinear polynomial with 2^36 coefficients is opened at one 36 coordinate point. Fp128 one-hot nv36, direct setup check
Fp128 one-hot nv36, recursive setup check
Over Fp128, 4 polynomials in 3 groups: one 16 variable polynomial at its own point, one 16 variable polynomial at its own point, and 2 34 variable polynomials at one shared point. Fp128 multi-group (final nv34, 4 polys total), direct setup check
Fp128 multi-group (final nv34, 4 polys total), recursive setup check
Over Fp128, 4 polynomials in 3 groups: one 16 variable polynomial at its own point, one 16 variable polynomial at its own point, and 2 32 variable polynomials at one shared point. Fp128 multi-group W8R2 (final nv32, 4 polys total), recursive setup check
Over Fp128, one committed 32 variable multilinear polynomial with 2^32 coefficients is opened at one 32 coordinate point. Fp128 one-hot nv32 W2R2, direct setup check
Fp128 one-hot nv32 W4R2, direct setup check
Fp128 one-hot nv32 W8R2, direct setup check

One-hot profiles generate deterministic witnesses with one 1 in every consecutive chunk of 256 coefficients. This witness shape is not a separate public claim.

Direct evaluates the public setup contribution during Stage 2. Recursive carries the same check through a Stage 3 setup-product sumcheck. Both modes execute the complete fold schedule and terminal verification.

The chunked profiles W2R2, W4R2, W8R2 divide the witness relation into the stated number of exact chunks for the first two fold levels.

Generated profiles may select different A, B, and D ring dimensions at different fold levels. The short profile names omit those dimensions.

Each sample generates deterministic witnesses and opening points, prepares setup, commits, proves, serializes the proof, checks its size, prepares verifier setup, and verifies the claimed openings. It does not test malformed proofs.

Phase time

Profile Setup Commit Prove Verify, multi-threaded Verify, single-threaded
Fp32 dense nv30, direct setup check 0.023 s
-2.2%
1.136 s
+0.6%
1.322 s
-0.8%
20.0 ms
+1.5%
47.1 ms
-0.2%
Fp32 one-hot nv34, direct setup check 0.047 s
-2.0%
0.727 s
-1.1%
1.378 s
+0.3%
20.5 ms
-0.3%
88.8 ms
-0.2%
Fp64 dense nv29, direct setup check 0.051 s
-0.8%
0.780 s
-1.5%
0.812 s
-1.0%
13.6 ms
+0.0%
36.2 ms
-0.5%
Fp64 one-hot nv35, direct setup check 0.089 s
-1.3%
1.650 s
+0.2%
1.289 s
-8.8%
17.4 ms
+2.5%
86.0 ms
-0.1%
Fp128 dense nv28, direct setup check 0.076 s
-0.6%
0.958 s
-0.5%
0.978 s
-8.1%
14.5 ms
-1.0%
52.9 ms
-0.1%
Fp128 one-hot nv36, direct setup check 0.210 s
+0.5%
4.446 s
-0.7%
2.245 s
+1.9%
28.4 ms
+0.6%
175.8 ms
-0.1%
Fp128 one-hot nv36, recursive setup check 0.775 s
-0.6%
4.870 s
-1.2%
2.296 s
-1.0%
20.0 ms
+4.1%
53.7 ms
+0.3%
Fp128 multi-group (final nv34, 4 polys total), direct setup check 0.145 s
+3.8%
2.425 s
+0.1%
1.163 s
-4.8%
19.9 ms
-0.5%
106.8 ms
-0.5%
Fp128 multi-group (final nv34, 4 polys total), recursive setup check 0.469 s
-0.8%
2.418 s
+0.8%
1.617 s
-0.3%
17.5 ms
-3.4%
36.1 ms
-0.5%
Fp128 multi-group W8R2 (final nv32, 4 polys total), recursive setup check 0.252 s
-0.2%
0.628 s
+0.6%
1.735 s
+0.7%
25.8 ms
-2.5%
73.9 ms
-0.5%
Fp128 one-hot nv32 W2R2, direct setup check 0.037 s
-2.1%
0.315 s
+0.1%
0.653 s
+0.6%
17.0 ms
+0.6%
52.3 ms
+0.2%
Fp128 one-hot nv32 W4R2, direct setup check 0.041 s
+1.0%
0.313 s
-0.8%
0.789 s
-0.7%
18.8 ms
-4.8%
62.1 ms
+0.3%
Fp128 one-hot nv32 W8R2, direct setup check 0.040 s
-1.0%
0.314 s
+0.3%
1.046 s
+0.0%
21.4 ms
-3.9%
73.1 ms
-0.1%

Proof size and protocol shape

Profile Fold A/B/D schedule Total proof Terminal response Terminal response planned maximum Fold levels Grinding retries
Fp32 dense nv30, direct setup check 2048/256/256 → 128/128/128 75,294 bytes
+0.0%
43,729 bytes
+0.0%
45,688 bytes
+0.0%
7
+0.0%
None
Fp32 one-hot nv34, direct setup check 2048/256/256 → 256/128/256 → 128/128/128 75,398 bytes
+0.0%
43,718 bytes
+0.0%
45,688 bytes
+0.0%
7
+0.0%
None
Fp64 dense nv29, direct setup check 2048/128/128 → 1024/128/128 → 128/128/128 → 64/64/64 77,301 bytes
+0.0%
45,155 bytes
+0.0%
47,620 bytes
+0.0%
8
+0.0%
None
Fp64 one-hot nv35, direct setup check 1024/256/128 → 256/128/128 → 128/128/128 → 64/64/64 77,438 bytes
+0.0%
45,181 bytes
+0.0%
47,620 bytes
+0.0%
8
+0.0%
L6: 1 / 1 / 1
Fp128 dense nv28, direct setup check 1024/64/64 → 128/64/64 → 64/64/64 80,581 bytes
+0.0%
51,978 bytes
+0.0%
54,262 bytes
+0.0%
7
+0.0%
None
Fp128 one-hot nv36, direct setup check 512/128/64 → 512/64/64 → 64/64/64 81,777 bytes
+0.0%
51,987 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None
Fp128 one-hot nv36, recursive setup check 512/128/64 → 64/64/64 84,962 bytes
+0.0%
51,984 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None
Fp128 multi-group (final nv34, 4 polys total), direct setup check 512/128/128 → 512/64/64 → 64/64/64 81,624 bytes
+0.0%
51,948 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None
Fp128 multi-group (final nv34, 4 polys total), recursive setup check 512/128/128 → 64/64/64 89,769 bytes
+0.0%
51,963 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None
Fp128 multi-group W8R2 (final nv32, 4 polys total), recursive setup check 512/64/64 → 128/64/64 → 64/64/64 83,746 bytes
+0.0%
52,016 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None
Fp128 one-hot nv32 W2R2, direct setup check 512/64/64 → 64/64/64 81,550 bytes
+0.0%
51,986 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None
Fp128 one-hot nv32 W4R2, direct setup check 512/64/64 → 256/64/64 → 64/64/64 81,782 bytes
+0.0%
51,992 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None
Fp128 one-hot nv32 W8R2, direct setup check 512/64/64 → 256/64/64 → 64/64/64 82,329 bytes
+0.0%
51,970 bytes
+0.0%
54,262 bytes
+0.0%
8
+0.0%
None

Grinding retries are rejected attempts at each fold, listed in measured-run order. Zero means the first sampled nonce was accepted.

Each multi-group profile has two precommitted nv16 singleton polynomials and two polynomials in the displayed final group.

Native proof accounting

Profile Non-nonce proof Nonce messages Nonce maximum
Fp32 dense nv30, direct setup check 74,785 bytes
+0.0%
509 bytes
+0.0%
1,016 bytes
+0.0%
Fp32 one-hot nv34, direct setup check 74,886 bytes
+0.0%
512 bytes
+0.0%
1,020 bytes
+0.0%
Fp64 dense nv29, direct setup check 76,803 bytes
+0.0%
498 bytes
+0.0%
992 bytes
+0.0%
Fp64 one-hot nv35, direct setup check 76,941 bytes
+0.0%
497 bytes
+0.0%
996 bytes
+0.0%
Fp128 dense nv28, direct setup check 80,202 bytes
+0.0%
379 bytes
+0.0%
758 bytes
+0.0%
Fp128 one-hot nv36, direct setup check 81,347 bytes
+0.0%
430 bytes
+0.0%
856 bytes
+0.0%
Fp128 one-hot nv36, recursive setup check 84,432 bytes
+0.0%
530 bytes
+0.0%
1,048 bytes
+0.0%
Fp128 multi-group (final nv34, 4 polys total), direct setup check 81,196 bytes
+0.0%
428 bytes
+0.0%
854 bytes
+0.0%
Fp128 multi-group (final nv34, 4 polys total), recursive setup check 89,163 bytes
+0.0%
606 bytes
+0.0%
1,204 bytes
+0.0%
Fp128 multi-group W8R2 (final nv32, 4 polys total), recursive setup check 83,280 bytes
+0.0%
466 bytes
+0.0%
930 bytes
+0.0%
Fp128 one-hot nv32 W2R2, direct setup check 81,122 bytes
+0.0%
428 bytes
+0.0%
848 bytes
+0.0%
Fp128 one-hot nv32 W4R2, direct setup check 81,352 bytes
+0.0%
430 bytes
+0.0%
856 bytes
+0.0%
Fp128 one-hot nv32 W8R2, direct setup check 81,890 bytes
+0.0%
439 bytes
+0.0%
868 bytes
+0.0%

Memory and setup size

Profile Setup vector Prepared NTT cache Verifier NTT cache Peak RSS
Fp32 dense nv30, direct setup check 20.0 MiB
+0.0%
154.0 MiB
+0.0%
1.2 MiB
+0.0%
4626.8 MiB
-0.0%
Fp32 one-hot nv34, direct setup check 64.0 MiB
+0.0%
354.1 MiB
+0.0%
1.2 MiB
+0.0%
1037.8 MiB
-0.1%
Fp64 dense nv29, direct setup check 32.0 MiB
+0.0%
291.2 MiB
+0.0%
1.8 MiB
+0.0%
4860.0 MiB
-0.0%
Fp64 one-hot nv35, direct setup check 128.0 MiB
+0.0%
917.2 MiB
+0.0%
1.8 MiB
+0.0%
1858.0 MiB
-0.1%
Fp128 dense nv28, direct setup check 64.0 MiB
+0.0%
585.0 MiB
+0.0%
1.5 MiB
+0.0%
5181.6 MiB
-0.0%
Fp128 one-hot nv36, direct setup check 344.0 MiB
+0.0%
2832.0 MiB
+0.0%
3.0 MiB
+0.0%
4415.6 MiB
+0.1%
Fp128 one-hot nv36, recursive setup check 512.0 MiB
+0.0%
3600.0 MiB
+0.0%
1.5 MiB
+0.0%
5710.3 MiB
-0.0%
Fp128 multi-group (final nv34, 4 polys total), direct setup check 256.0 MiB
+0.0%
1319.9 MiB
+0.0%
3.0 MiB
+0.0%
2392.1 MiB
+0.0%
Fp128 multi-group (final nv34, 4 polys total), recursive setup check 256.0 MiB
+0.0%
1400.0 MiB
+0.0%
1.5 MiB
+0.0%
2954.2 MiB
+0.0%
Fp128 multi-group W8R2 (final nv32, 4 polys total), recursive setup check 128.0 MiB
+0.0%
620.5 MiB
+0.0%
1.5 MiB
+0.0%
1740.6 MiB
+0.0%
Fp128 one-hot nv32 W2R2, direct setup check 64.0 MiB
+0.0%
321.0 MiB
+0.0%
1.5 MiB
+0.0%
686.5 MiB
-0.2%
Fp128 one-hot nv32 W4R2, direct setup check 64.0 MiB
+0.0%
345.0 MiB
+0.0%
1.5 MiB
+0.0%
756.7 MiB
-0.1%
Fp128 one-hot nv32 W8R2, direct setup check 64.0 MiB
+0.0%
345.0 MiB
+0.0%
1.5 MiB
+0.0%
849.3 MiB
+0.8%

Deltas are shown only for profiles with a matching merge-base case. Negative is smaller or faster.

The uploaded report.md benchmark artifact contains the detailed fold schedule, proof-size breakdown, terminal response segments, and Golomb diagnostics.

@github-actions

Copy link
Copy Markdown

CI test timing

  • Report generated: 2026-10-26T17:45:44Z.
  • Source: c89edb4 on quang/labinius-paged-matrix.
  • Workflow run: 40361758182.
  • Main baseline: a4c7e09.

Run summary

Wall s Main wall s Main Δ Ratio Tests Skipped Failed Status
1772.0 1423.0 +24.5% 1.25x 2041 0 0 ok

Wall time spans 2 parallel nextest slice shards.

Slowest tests

Rank Duration s Test
1 480.0 akita-planner::schedule_params::suffix_dp::chunk_ownership_tests::contracting_chunk_search_matches_unpruned_complete_objective
2 184.4 akita-planner::schedule_params::adaptive_search_tests::adaptive_frontier_matches_unpruned_traversal_and_hand_priced_role_optima
3 105.2 akita-planner::planner::setup_prefix_challenge_hook_tests::catalog_binding_revalidates_recursive_setup_prefix_challenge_hook
4 55.8 akita-planner::planner::totality_tests::contractive_winner_remains_selected
5 32.0 akita-planner::planner::totality_tests::noncontractive_multi_chunk_root_can_beat_contractive_candidates
6 31.0 akita-planner::generated_families::tests::generation_uses_requested_geometry_for_preplans_and_grouped_producers
7 29.5 akita-planner::schedule_params::adaptive_search_tests::relation_cutover::bounded_suffix_dp_matches_unpruned_fixed_cutover_search
8 25.3 akita-planner::schedule_params::adaptive_search_tests::adaptive_nv36_minimizes_setup_envelope_before_first_direct_setup
9 23.8 akita-planner::planner::totality_tests::valid_small_grouped_root_has_a_schedule
10 23.3 akita-pcs::dynamic_backends::portable::offloaded_route_uses_only_local_prefix_handles
11 20.8 akita-planner::schedule_params::adaptive_search_tests::production_suffix_selects_l2_with_the_typed_response_model
12 17.6 akita-pcs::akita_fp128_e2e::heterogeneous::bounded_dense_roundtrip_over_u64_coefficients_at_every_catalog_size
13 17.2 akita-pcs::akita_small_field_e2e::combined_recursive::fp32_combined_setup_proves_recursive_and_onehot_families
14 17.0 akita-pcs::q128_offset275_e2e::offset275_config_commits_opens_and_verifies
15 16.0 akita-pcs::scheme::tests::cross_mode::proofs_cannot_replay_across_valid_quotient_and_reduced_schedules
16 15.8 akita-pcs::dynamic_backends::dynamic_backend_failures_cleanup_and_retry
17 13.6 akita-setup::tests::disk_persistence::combined_recursive_prefix_registry_persists_and_serves_each_family
18 12.0 akita-pcs::transcript_hardening_proptest::stream_fuzzes_batch_shapes
19 11.7 akita-pcs::q128_offset275_e2e::commitment_binds_the_profile_to_the_exact_field_modulus
20 11.6 akita-pcs::akita_fp128_e2e::fp128_onehot

Regressions vs main

Δ s Baseline s Current s Test
91.3 388.7 480.0 akita-planner::schedule_params::suffix_dp::chunk_ownership_tests::contracting_chunk_search_matches_unpruned_complete_objective
41.0 143.4 184.4 akita-planner::schedule_params::adaptive_search_tests::adaptive_frontier_matches_unpruned_traversal_and_hand_priced_role_optima
26.6 78.6 105.2 akita-planner::planner::setup_prefix_challenge_hook_tests::catalog_binding_revalidates_recursive_setup_prefix_challenge_hook
10.5 21.5 32.0 akita-planner::planner::totality_tests::noncontractive_multi_chunk_root_can_beat_contractive_candidates
10.0 15.2 25.3 akita-planner::schedule_params::adaptive_search_tests::adaptive_nv36_minimizes_setup_envelope_before_first_direct_setup
9.7 21.4 31.0 akita-planner::generated_families::tests::generation_uses_requested_geometry_for_preplans_and_grouped_producers
9.5 14.4 23.8 akita-planner::planner::totality_tests::valid_small_grouped_root_has_a_schedule
8.1 47.7 55.8 akita-planner::planner::totality_tests::contractive_winner_remains_selected
7.9 12.9 20.8 akita-planner::schedule_params::adaptive_search_tests::production_suffix_selects_l2_with_the_typed_response_model
7.7 4.3 12.0 akita-pcs::transcript_hardening_proptest::stream_fuzzes_batch_shapes
7.7 8.1 15.8 akita-pcs::dynamic_backends::dynamic_backend_failures_cleanup_and_retry
7.3 6.3 13.6 akita-setup::tests::disk_persistence::combined_recursive_prefix_registry_persists_and_serves_each_family
6.8 16.5 23.3 akita-pcs::dynamic_backends::portable::offloaded_route_uses_only_local_prefix_handles
6.7 10.9 17.6 akita-pcs::akita_fp128_e2e::heterogeneous::bounded_dense_roundtrip_over_u64_coefficients_at_every_catalog_size
5.2 12.0 17.2 akita-pcs::akita_small_field_e2e::combined_recursive::fp32_combined_setup_proves_recursive_and_onehot_families

New slow tests

No new tests ≥30s vs main baseline.

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

implementation PR contains implementation of a spec spec PR contains a spec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant