Skip to content

feat: exploring contract class logs as fields#11632

Closed
MirandaWood wants to merge 51 commits intomasterfrom
mw/cc-logs-fields
Closed

feat: exploring contract class logs as fields#11632
MirandaWood wants to merge 51 commits intomasterfrom
mw/cc-logs-fields

Conversation

@MirandaWood
Copy link
Contributor

@MirandaWood MirandaWood commented Jan 30, 2025

Just testing out what breaks, what is massively slow, does CI build, how many more gates we have etc.

WILL NOT WORK! DO NOT MERGE! DON'T EVEN THINK ABOUT IT!

Works as of last week!

@MirandaWood MirandaWood added the S-do-not-merge Status: Do not merge this PR label Jan 30, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Feb 3, 2025

Changes to circuit sizes

Generated at commit: 6a1aa687df2b0c068a6ffdf71092ac012dc5aa5a, compared to commit: 4f0dce78f285af5a23e79ab47a4e259ea72f7fc1

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
private_kernel_tail_to_public +24,251 ❌ +194.87% +50,879 ❌ +134.10%
private_kernel_tail +12,135 ❌ +275.80% +26,678 ❌ +101.03%
private_kernel_init +21,132 ❌ +112.06% +24,150 ❌ +59.94%
private_kernel_inner +33,218 ❌ +116.37% +39,285 ❌ +54.05%
rollup_base_public +92,359 ❌ +107.28% +550,950 ❌ +47.11%
private_kernel_reset_0_0_64_0_0_0_0_0_0 +6,038 ❌ +53.68% +9,058 ❌ +26.23%
private_kernel_reset_64_0_0_0_0_0_0_0_0 +6,038 ❌ +53.68% +9,058 ❌ +26.23%
rollup_base_private +82,185 ❌ +59.63% +375,489 ❌ +22.93%
private_kernel_reset_0_0_0_0_0_64_0_0_0 +6,038 ❌ +32.49% +9,058 ❌ +18.87%
private_kernel_reset_4_4_4_4_4_4_4_4_4 +6,038 ❌ +25.85% +9,058 ❌ +9.98%
private_kernel_reset_32_4_32_4_4_4_4_4_4 +6,038 ❌ +24.44% +9,058 ❌ +9.80%
private_kernel_reset_0_0_0_0_64_0_0_0_0 +6,038 ❌ +44.80% +9,058 ❌ +9.58%
private_kernel_reset_32_4_32_4_4_4_4_4_32 +6,038 ❌ +22.28% +9,057 ❌ +9.34%
private_kernel_reset_32_4_32_4_4_4_4_64_4 +6,038 ❌ +22.99% +9,058 ❌ +9.19%
private_kernel_reset_32_4_32_4_4_4_4_64_32 +6,038 ❌ +21.07% +9,057 ❌ +8.79%
private_kernel_reset_32_4_32_4_4_4_64_4_4 +6,038 ❌ +22.43% +9,058 ❌ +8.37%
private_kernel_reset_32_4_32_4_4_4_64_4_32 +6,038 ❌ +20.60% +9,057 ❌ +8.03%
private_kernel_reset_32_4_32_4_4_4_64_64_4 +6,038 ❌ +21.20% +9,057 ❌ +7.93%
private_kernel_reset_32_4_32_4_4_4_64_64_32 +6,038 ❌ +19.56% +9,058 ❌ +7.62%
private_kernel_reset_32_16_32_4_4_4_4_4_4 +6,038 ❌ +21.76% +9,058 ❌ +6.75%
private_kernel_reset_32_4_32_16_4_4_4_4_4 +6,038 ❌ +21.57% +9,058 ❌ +6.64%
private_kernel_reset_32_16_32_4_4_4_4_4_32 +6,038 ❌ +20.03% +9,057 ❌ +6.53%
private_kernel_reset_32_16_32_4_4_4_4_64_4 +6,038 ❌ +20.60% +9,058 ❌ +6.46%
private_kernel_reset_32_4_32_16_4_4_4_4_32 +6,038 ❌ +19.88% +9,057 ❌ +6.43%
private_kernel_reset_32_4_32_16_4_4_4_64_4 +6,038 ❌ +20.44% +9,058 ❌ +6.36%
private_kernel_reset_32_16_32_4_4_4_4_64_32 +6,038 ❌ +19.05% +9,057 ❌ +6.25%
private_kernel_reset_32_4_32_16_4_4_4_64_32 +6,038 ❌ +18.91% +9,057 ❌ +6.16%
private_kernel_reset_32_16_32_4_4_4_64_4_4 +6,038 ❌ +20.15% +9,058 ❌ +6.04%
private_kernel_reset_32_4_32_16_4_4_64_4_4 +6,038 ❌ +19.99% +9,058 ❌ +5.96%
private_kernel_reset_32_16_32_4_4_4_64_4_32 +6,038 ❌ +18.66% +9,057 ❌ +5.86%
private_kernel_reset_32_16_32_4_4_4_64_64_4 +6,038 ❌ +19.15% +9,057 ❌ +5.80%
private_kernel_reset_32_4_32_16_4_4_64_4_32 +6,038 ❌ +18.52% +9,057 ❌ +5.78%
private_kernel_reset_32_4_32_16_4_4_64_64_4 +6,038 ❌ +19.01% +9,057 ❌ +5.73%
private_kernel_reset_32_16_32_4_4_4_64_64_32 +6,038 ❌ +17.80% +9,058 ❌ +5.64%
private_kernel_reset_32_4_32_16_4_4_64_64_32 +6,038 ❌ +17.68% +9,058 ❌ +5.57%
private_kernel_reset_32_16_32_16_4_4_4_4_4 +6,038 ❌ +19.45% +9,058 ❌ +5.09%
private_kernel_reset_32_16_32_16_4_4_4_4_32 +6,038 ❌ +18.06% +9,057 ❌ +4.96%
private_kernel_reset_32_16_32_16_4_4_4_64_4 +6,038 ❌ +18.52% +9,058 ❌ +4.92%
private_kernel_reset_32_16_32_16_4_4_4_64_32 +6,038 ❌ +17.26% +9,057 ❌ +4.80%
private_kernel_reset_32_16_32_16_4_4_64_4_4 +6,038 ❌ +18.16% +9,058 ❌ +4.67%
private_kernel_reset_16_16_16_16_16_16_16_16_16 +6,038 ❌ +18.02% +9,058 ❌ +4.62%
private_kernel_reset_32_16_32_16_4_4_64_4_32 +6,038 ❌ +16.94% +9,057 ❌ +4.56%
private_kernel_reset_32_16_32_16_4_4_64_64_4 +6,038 ❌ +17.34% +9,057 ❌ +4.53%
private_kernel_reset_32_16_32_16_4_4_64_64_32 +6,038 ❌ +16.23% +9,058 ❌ +4.43%
private_kernel_reset_0_64_0_0_0_0_0_0_0 +6,038 ❌ +23.14% +8,536 ❌ +3.33%
private_kernel_reset_0_0_0_64_0_0_0_0_0 +6,038 ❌ +22.00% +8,408 ❌ +3.14%
private_kernel_reset_32_32_32_32_32_32_32_32_32 +6,038 ❌ +12.85% +9,057 ❌ +2.70%
private_kernel_reset +6,038 ❌ +8.47% +8,408 ❌ +1.37%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
private_kernel_tail_to_public 36,696 (+24,251) +194.87% 88,821 (+50,879) +134.10%
private_kernel_tail 16,535 (+12,135) +275.80% 53,085 (+26,678) +101.03%
private_kernel_init 39,990 (+21,132) +112.06% 64,442 (+24,150) +59.94%
private_kernel_inner 61,764 (+33,218) +116.37% 111,964 (+39,285) +54.05%
rollup_base_public 178,451 (+92,359) +107.28% 1,720,511 (+550,950) +47.11%
private_kernel_reset_0_0_64_0_0_0_0_0_0 17,286 (+6,038) +53.68% 43,596 (+9,058) +26.23%
private_kernel_reset_64_0_0_0_0_0_0_0_0 17,286 (+6,038) +53.68% 43,596 (+9,058) +26.23%
rollup_base_private 220,015 (+82,185) +59.63% 2,012,848 (+375,489) +22.93%
private_kernel_reset_0_0_0_0_0_64_0_0_0 24,620 (+6,038) +32.49% 57,049 (+9,058) +18.87%
private_kernel_reset_4_4_4_4_4_4_4_4_4 29,400 (+6,038) +25.85% 99,790 (+9,058) +9.98%
private_kernel_reset_32_4_32_4_4_4_4_4_4 30,744 (+6,038) +24.44% 101,484 (+9,058) +9.80%
private_kernel_reset_0_0_0_0_64_0_0_0_0 19,515 (+6,038) +44.80% 103,567 (+9,058) +9.58%
private_kernel_reset_32_4_32_4_4_4_4_4_32 33,133 (+6,038) +22.28% 106,065 (+9,057) +9.34%
private_kernel_reset_32_4_32_4_4_4_4_64_4 32,301 (+6,038) +22.99% 107,570 (+9,058) +9.19%
private_kernel_reset_32_4_32_4_4_4_4_64_32 34,690 (+6,038) +21.07% 112,151 (+9,057) +8.79%
private_kernel_reset_32_4_32_4_4_4_64_4_4 32,962 (+6,038) +22.43% 117,218 (+9,058) +8.37%
private_kernel_reset_32_4_32_4_4_4_64_4_32 35,351 (+6,038) +20.60% 121,799 (+9,057) +8.03%
private_kernel_reset_32_4_32_4_4_4_64_64_4 34,519 (+6,038) +21.20% 123,303 (+9,057) +7.93%
private_kernel_reset_32_4_32_4_4_4_64_64_32 36,908 (+6,038) +19.56% 127,885 (+9,058) +7.62%
private_kernel_reset_32_16_32_4_4_4_4_4_4 33,792 (+6,038) +21.76% 143,265 (+9,058) +6.75%
private_kernel_reset_32_4_32_16_4_4_4_4_4 34,028 (+6,038) +21.57% 145,394 (+9,058) +6.64%
private_kernel_reset_32_16_32_4_4_4_4_4_32 36,181 (+6,038) +20.03% 147,846 (+9,057) +6.53%
private_kernel_reset_32_16_32_4_4_4_4_64_4 35,349 (+6,038) +20.60% 149,351 (+9,058) +6.46%
private_kernel_reset_32_4_32_16_4_4_4_4_32 36,417 (+6,038) +19.88% 149,975 (+9,057) +6.43%
private_kernel_reset_32_4_32_16_4_4_4_64_4 35,585 (+6,038) +20.44% 151,480 (+9,058) +6.36%
private_kernel_reset_32_16_32_4_4_4_4_64_32 37,738 (+6,038) +19.05% 153,932 (+9,057) +6.25%
private_kernel_reset_32_4_32_16_4_4_4_64_32 37,974 (+6,038) +18.91% 156,061 (+9,057) +6.16%
private_kernel_reset_32_16_32_4_4_4_64_4_4 36,010 (+6,038) +20.15% 158,999 (+9,058) +6.04%
private_kernel_reset_32_4_32_16_4_4_64_4_4 36,246 (+6,038) +19.99% 161,128 (+9,058) +5.96%
private_kernel_reset_32_16_32_4_4_4_64_4_32 38,399 (+6,038) +18.66% 163,580 (+9,057) +5.86%
private_kernel_reset_32_16_32_4_4_4_64_64_4 37,567 (+6,038) +19.15% 165,084 (+9,057) +5.80%
private_kernel_reset_32_4_32_16_4_4_64_4_32 38,635 (+6,038) +18.52% 165,709 (+9,057) +5.78%
private_kernel_reset_32_4_32_16_4_4_64_64_4 37,803 (+6,038) +19.01% 167,213 (+9,057) +5.73%
private_kernel_reset_32_16_32_4_4_4_64_64_32 39,956 (+6,038) +17.80% 169,666 (+9,058) +5.64%
private_kernel_reset_32_4_32_16_4_4_64_64_32 40,192 (+6,038) +17.68% 171,795 (+9,058) +5.57%
private_kernel_reset_32_16_32_16_4_4_4_4_4 37,076 (+6,038) +19.45% 187,175 (+9,058) +5.09%
private_kernel_reset_32_16_32_16_4_4_4_4_32 39,465 (+6,038) +18.06% 191,756 (+9,057) +4.96%
private_kernel_reset_32_16_32_16_4_4_4_64_4 38,633 (+6,038) +18.52% 193,261 (+9,058) +4.92%
private_kernel_reset_32_16_32_16_4_4_4_64_32 41,022 (+6,038) +17.26% 197,842 (+9,057) +4.80%
private_kernel_reset_32_16_32_16_4_4_64_4_4 39,294 (+6,038) +18.16% 202,909 (+9,058) +4.67%
private_kernel_reset_16_16_16_16_16_16_16_16_16 39,536 (+6,038) +18.02% 204,927 (+9,058) +4.62%
private_kernel_reset_32_16_32_16_4_4_64_4_32 41,683 (+6,038) +16.94% 207,490 (+9,057) +4.56%
private_kernel_reset_32_16_32_16_4_4_64_64_4 40,851 (+6,038) +17.34% 208,994 (+9,057) +4.53%
private_kernel_reset_32_16_32_16_4_4_64_64_32 43,240 (+6,038) +16.23% 213,576 (+9,058) +4.43%
private_kernel_reset_0_64_0_0_0_0_0_0_0 32,134 (+6,038) +23.14% 264,687 (+8,536) +3.33%
private_kernel_reset_0_0_0_64_0_0_0_0_0 33,480 (+6,038) +22.00% 276,129 (+8,408) +3.14%
private_kernel_reset_32_32_32_32_32_32_32_32_32 53,041 (+6,038) +12.85% 345,101 (+9,057) +2.70%
private_kernel_reset 77,344 (+6,038) +8.47% 620,236 (+8,408) +1.37%

TomAFrench added a commit that referenced this pull request Feb 13, 2025
Wee PR to fix some things I discovered in #11632:

- We don't actually support multiple blobs per block in ts. The call in
`data_retrieval` assumes we have just one per block and doesn't push the
blob buffers together. I added a fn to combine them.
- Also, the `archiver.test` didn't support multiple blobs and would fail
when we had more than one; I edited the helper fns.
- I removed the range checks in `components.nr` for a (small) gate count
improvement.
- In `components.nr` we were checking the incorrect index for public and
private logs:

```rust
let index = offset + j * PUBLIC_LOG_SIZE_IN_FIELDS + k;
if index < array_len {
                    assert_eq(tx_effects_hash_input[index], log[k]);
                    assert_eq(tx_effects_hash_input[index], log[k]);
                }
```
Where we should be checking whether `j * PUBLIC_LOG_SIZE_IN_FIELDS + k`
is less than `array_len` - no inclusion of `offset`.

- I noticed that we were sometimes spending 100k+ gates on
`array_merge`. I changed it to construct the array in unconstrained,
then check each item against either the left or right array. We could
also use `is_empty` on each item, but depending on `T` that could be
expensive, and I don't think we have a use case where we must check each
item for emptiness.

---------

Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
@MirandaWood
Copy link
Contributor Author

Closing - we went with hashing: #12061

@MirandaWood MirandaWood closed this Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-do-not-merge Status: Do not merge this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant