Commit 4644a84
authored
feat: reduce CRS and polynomial memory for non-ZK proofs (#20731)
## Summary
- Size the CRS at `max_end_index` (actual data extent) rather than
`dyadic_size` for non-ZK proofs
- Make Shplonk quotient polynomial `round_up_power_2` conditional on
having non-dyadic claims (Libra/sumcheck), which only exist in the ZK
path
- Size PolynomialBatcher's temporary polynomials (`batched_unshifted`,
`batched_to_be_shifted`, `A_0_pos`, `A_0_neg`) at `actual_data_size`
rather than `full_batched_size`
## Benchmark results
Chonk AMM flow (`ecdsar1+amm_add_liquidity_1_recursions+sponsored_fpc`),
`max_end_index=278,429` vs `dyadic_size=524,288`:
```
bb prove --scheme chonk --ivc_inputs_path .../ecdsar1+amm_add_liquidity_1_recursions+sponsored_fpc/ivc-inputs.msgpack -o /tmp/out
```
| | Run 1 (KB) | Run 2 (KB) | Run 3 (KB) | Avg (MiB) |
|---|---|---|---|---|
| Before | 702,660 | 704,044 | 691,328 | 682.7 |
| After | 657,096 | 672,916 | 677,508 | 654.8 |
| **Savings** | **45,564** | **31,128** | **13,820** | **~28 MiB
(~4.1%)** |
## Test plan
- [x] `ultra_honk_bench` at 2^20 passes (no crash)
- [x] `ultra_honk_tests`: 260 passed, 5 skipped
- [x] `commitment_schemes_tests`: 82 passed, 2 skipped
- [ ] CI passes1 parent c572e95 commit 4644a84
6 files changed
Lines changed: 34 additions & 14 deletions
File tree
- barretenberg/cpp/src/barretenberg
- commitment_schemes
- gemini
- shplonk
- flavor
- polynomials
- ultra_honk
Lines changed: 7 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
| 128 | + | |
128 | 129 | | |
129 | 130 | | |
130 | 131 | | |
| |||
133 | 134 | | |
134 | 135 | | |
135 | 136 | | |
136 | | - | |
| 137 | + | |
137 | 138 | | |
138 | | - | |
139 | | - | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
140 | 142 | | |
141 | 143 | | |
142 | 144 | | |
| |||
191 | 193 | | |
192 | 194 | | |
193 | 195 | | |
194 | | - | |
195 | | - | |
| 196 | + | |
| 197 | + | |
196 | 198 | | |
197 | 199 | | |
198 | 200 | | |
| |||
Lines changed: 0 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | 64 | | |
69 | 65 | | |
70 | 66 | | |
| |||
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
67 | 77 | | |
68 | 78 | | |
69 | 79 | | |
| |||
Lines changed: 7 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
189 | | - | |
190 | | - | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
191 | 196 | | |
192 | 197 | | |
193 | 198 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
Lines changed: 9 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
64 | 69 | | |
| 70 | + | |
| 71 | + | |
65 | 72 | | |
66 | 73 | | |
67 | 74 | | |
| |||
120 | 127 | | |
121 | 128 | | |
122 | 129 | | |
123 | | - | |
| 130 | + | |
124 | 131 | | |
125 | 132 | | |
126 | 133 | | |
| |||
0 commit comments