Merged
Conversation
Test improvements for Chonk recursive verifier components: - Extended existing targeted UltraHonk recursive verifier failure test framework to Mega, Translator, and ECCVM. Designed to test each unique failure point of the given verifier. - Removed Goblin recursive verifier tests that were redundant with standalone ECCVM/Translator tests; kept only the 2 cross-component binding tests (Merge-Translator, ECCVM-Translator) - Unified Ultra/Mega _recursion_ tests into a single parameterized suite - Unified Ultra/Mega _transcript_ tests into a single parameterized suite
…ic size (#20600) ## Summary - Allocate non-gate selectors (`q_m`, `q_c`, `q_l`, `q_r`, `q_o`, `q_4`) at `trace_active_range_size()` instead of `dyadic_size()`, using virtual zeroes for the rest - Fix `get_polynomial_size()` to return `virtual_size()` instead of `size()`, since the logical polynomial size is the dyadic circuit size - Fix `batch_polynomials` in Hypernova to handle polynomials with different backing sizes (non-gate selectors now have smaller backing than other entities like table polynomials) ## Benchmark results ```bash cd barretenberg/cpp/build BB_VERBOSE=1 BB_BENCH=1 ./bin/ultra_honk_bench --benchmark_filter="construct_proof_ultrahonk_1M_gates_dyadic_2_20$" --benchmark_repetitions=1 BB_VERBOSE=1 BB_BENCH=1 ./bin/ultra_honk_bench --benchmark_filter="construct_proof_ultrahonk_1M_gates_dyadic_2_21$" --benchmark_repetitions=1 ``` Circuits ~2000 gates apart straddling the 2^20 boundary: | Metric | Before | After | |---|---|---| | Peak RSS (2^21 dyadic) | 2854 MiB | **2375 MiB** (-479 MiB, -17%) | | Memory gap 2^20 vs 2^21 | 603 MiB | **126 MiB** (-79%) | | Peak RSS (2^20 dyadic) | 2251 MiB | 2249 MiB (unchanged) | ## Test plan - [x] `ultra_honk_tests` — 260 passed, 5 skipped - [x] `chonk_tests` — 20 passed - [x] `circuit_checker_tests` — 80 passed - [x] `hypernova_tests` — 9 passed Resolves AztecProtocol/barretenberg#1625.
Audit and cleanup up of `barretenberg/numeric` module. Largely adding some protections, tests and docs clarifications. Also some minor bug fixes: - operator `bool()` in `uint128`, `uint256`, `uintx` only checked the lowest limb/half; now checks all limbs - incorrect mask in `uintx::slice()` (full width instead of half-width when `range == base_uint::length()`)
## Summary - Add `include` field to barretenberg-rs `Cargo.toml` so generated `api.rs` and `generated_types.rs` are packaged by `cargo publish`, even though they remain gitignored - Add `release` function to `barretenberg/rust/bootstrap.sh` — sets crate version from `REF_NAME`, verifies generated files exist, and runs `cargo publish` - Hook `barretenberg/rust` into the top-level release orchestrator (after `barretenberg/ts` which generates the Rust bindings) - Add `publish = false` to the tests crate ## How it works 1. Generated files stay **gitignored** — not committed to the repo 2. The `include` field in `Cargo.toml` overrides `.gitignore` for `cargo publish`, so the files are packaged as long as they exist on disk 3. During a release, `barretenberg/ts` runs first (which calls `yarn generate`), then `barretenberg/rust` publishes 4. No separate workflow — follows the same unified release flow as npm packages ## Test plan - [x] `cargo package --list --allow-dirty` confirms `src/api.rs` and `src/generated_types.rs` are included - [x] `cargo publish --dry-run --allow-dirty --no-verify` succeeds - [ ] Set `CARGO_REGISTRY_TOKEN` env var in release environment before first publish
## Summary - Adds `barretenberg/cpp/bootstrap.sh build_bench` to the `ci-barretenberg-full` CI target - This ensures benchmark binary compilation failures are caught early in the barretenberg merge train, rather than only surfacing later during full CI bench runs - Motivated by failures like http://ci.aztec-labs.com/e0b887a5e8eb4376
## Summary - Extracts the inline Python component-extraction logic from `ci_benchmark_ultrahonk_circuits.sh` into a shared `extract_component_benchmarks.py` script - Calls the shared script from `ci_benchmark_ivc_flows.sh` to produce stacked component charts (sumcheck, pcs, oink, pippenger, etc.) on the benchmark dashboard for app-proving flows - Matches the existing ultrahonk-bench component graphs already visible on the dashboard ## Test plan - [ ] CI passes (no functional change to ultrahonk-bench, only refactor) - [ ] After merge, verify component graphs appear under `app-proving/` on the [benchmark dashboard](https://aztecprotocol.github.io/benchmark-page-data/bench/?branch=next)
Collaborator
Author
|
🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BEGIN_COMMIT_OVERRIDE
chore: chonk rec ver 0 (#20506)
fix: allocate non-gate selectors at trace-active size instead of dyadic size (#20600)
chore: numeric audit 0 (#20491)
chore: prepare barretenberg-rs for crates.io publishing (#20496)
chore: add build_bench to ci-barretenberg-full (#20650)
chore: add component graphs for app-proving benchmarks (#20649)
END_COMMIT_OVERRIDE