-
Notifications
You must be signed in to change notification settings - Fork 270
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: remove ram tables in note_getter #7434
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Proof generationEach column represents the number of threads used in proof generation.
L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 8 txs.
Circuits statsStats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.
Stats on running time collected for app circuits
AVM SimulationTime to simulate various public functions in the AVM.
Public DB AccessTime to access various public DBs.
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contract classes are registered in the tx.
Transaction size based on fee payment method | Metric | | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
super nice, very smart, much brain
@nventuro I plan on doing changes to the notes today so I enabled auto-merge to avoid unnecessary conflicts.
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.46.3</summary> ## [0.46.3](aztec-package-v0.46.2...aztec-package-v0.46.3) (2024-07-11) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.46.3</summary> ## [0.46.3](barretenberg.js-v0.46.2...barretenberg.js-v0.46.3) (2024-07-11) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.46.3</summary> ## [0.46.3](aztec-packages-v0.46.2...aztec-packages-v0.46.3) (2024-07-11) ### Features * Add CLI argument for debugging comptime blocks (noir-lang/noir#5192) ([97ecff5](97ecff5)) * Add reset tiny and optimize tail ([#7422](#7422)) ([399917b](399917b)) * **avm:** Calldatacopy and return gadget ([#7415](#7415)) ([ec39e4e](ec39e4e)), closes [#7381](#7381) [#7211](#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](#7419)) ([108fc5f](108fc5f)) * Integrate new proving systems in e2e ([#6971](#6971)) ([723a0c1](723a0c1)) * Lsp rename/find-all-references for struct members (noir-lang/noir#5443) ([97ecff5](97ecff5)) * MSM sorting ([#7351](#7351)) ([5cbdc54](5cbdc54)) * **optimization:** Deduplicate more instructions (noir-lang/noir#5457) ([97ecff5](97ecff5)) * Prefix operator overload trait dispatch (noir-lang/noir#5423) ([97ecff5](97ecff5)) * Remove proof from L1 Rollup process ([#7347](#7347)) ([2645eab](2645eab)), closes [#7346](#7346) * Remove ram tables in note_getter ([#7434](#7434)) ([fd67da3](fd67da3)) * Sync from aztec-packages (noir-lang/noir#5467) ([97ecff5](97ecff5)) * Typing return values of embedded_curve_ops ([#7413](#7413)) ([db96077](db96077)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](#7438)) ([2a7494b](2a7494b)) * Memory init with no other ops gate counting ([#7427](#7427)) ([e7177ba](e7177ba)) * Pass secrets to ci-arm.yml ([#7436](#7436)) ([619501d](619501d)) * Remove compile-time error for invalid indices (noir-lang/noir#5466) ([97ecff5](97ecff5)) * Using different generators in private refund ([#7414](#7414)) ([59b92ca](59b92ca)), closes [#7320](#7320) ### Miscellaneous * **bb:** Fix double increment ([#7428](#7428)) ([7870a58](7870a58)) * **boxes:** Adding an init command for an empty project ([#7398](#7398)) ([a6a605d](a6a605d)) * Bump bb to 0.45.1 (noir-lang/noir#5469) ([97ecff5](97ecff5)) * Disable flaky cheat code test ([7b8c2ba](7b8c2ba)) * Document EmbeddedCurvePoint (noir-lang/noir#5468) ([97ecff5](97ecff5)) * Minimize usage of get_row in inverse computation ([#7431](#7431)) ([f177887](f177887)) * Private refund cleanup ([#7403](#7403)) ([ebec8ff](ebec8ff)) * Replace relative paths to noir-protocol-circuits ([842f6d1](842f6d1)) * Unbundle `check_array_is_initialized` (noir-lang/noir#5451) ([97ecff5](97ecff5)) </details> <details><summary>barretenberg: 0.46.3</summary> ## [0.46.3](barretenberg-v0.46.2...barretenberg-v0.46.3) (2024-07-11) ### Features * **avm:** Calldatacopy and return gadget ([#7415](#7415)) ([ec39e4e](ec39e4e)), closes [#7381](#7381) [#7211](#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](#7419)) ([108fc5f](108fc5f)) * Integrate new proving systems in e2e ([#6971](#6971)) ([723a0c1](723a0c1)) * MSM sorting ([#7351](#7351)) ([5cbdc54](5cbdc54)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](#7438)) ([2a7494b](2a7494b)) * Memory init with no other ops gate counting ([#7427](#7427)) ([e7177ba](e7177ba)) ### Miscellaneous * **bb:** Fix double increment ([#7428](#7428)) ([7870a58](7870a58)) * Minimize usage of get_row in inverse computation ([#7431](#7431)) ([f177887](f177887)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@aztec-package-v0.46.2...aztec-package-v0.46.3) (2024-07-11) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@barretenberg.js-v0.46.2...barretenberg.js-v0.46.3) (2024-07-11) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@aztec-packages-v0.46.2...aztec-packages-v0.46.3) (2024-07-11) ### Features * Add CLI argument for debugging comptime blocks (noir-lang/noir#5192) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Add reset tiny and optimize tail ([#7422](AztecProtocol/aztec-packages#7422)) ([399917b](AztecProtocol/aztec-packages@399917b)) * **avm:** Calldatacopy and return gadget ([#7415](AztecProtocol/aztec-packages#7415)) ([ec39e4e](AztecProtocol/aztec-packages@ec39e4e)), closes [#7381](AztecProtocol/aztec-packages#7381) [#7211](AztecProtocol/aztec-packages#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](AztecProtocol/aztec-packages#7419)) ([108fc5f](AztecProtocol/aztec-packages@108fc5f)) * Integrate new proving systems in e2e ([#6971](AztecProtocol/aztec-packages#6971)) ([723a0c1](AztecProtocol/aztec-packages@723a0c1)) * Lsp rename/find-all-references for struct members (noir-lang/noir#5443) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * MSM sorting ([#7351](AztecProtocol/aztec-packages#7351)) ([5cbdc54](AztecProtocol/aztec-packages@5cbdc54)) * **optimization:** Deduplicate more instructions (noir-lang/noir#5457) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Prefix operator overload trait dispatch (noir-lang/noir#5423) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Remove proof from L1 Rollup process ([#7347](AztecProtocol/aztec-packages#7347)) ([2645eab](AztecProtocol/aztec-packages@2645eab)), closes [#7346](AztecProtocol/aztec-packages#7346) * Remove ram tables in note_getter ([#7434](AztecProtocol/aztec-packages#7434)) ([fd67da3](AztecProtocol/aztec-packages@fd67da3)) * Sync from aztec-packages (noir-lang/noir#5467) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Typing return values of embedded_curve_ops ([#7413](AztecProtocol/aztec-packages#7413)) ([db96077](AztecProtocol/aztec-packages@db96077)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](AztecProtocol/aztec-packages#7438)) ([2a7494b](AztecProtocol/aztec-packages@2a7494b)) * Memory init with no other ops gate counting ([#7427](AztecProtocol/aztec-packages#7427)) ([e7177ba](AztecProtocol/aztec-packages@e7177ba)) * Pass secrets to ci-arm.yml ([#7436](AztecProtocol/aztec-packages#7436)) ([619501d](AztecProtocol/aztec-packages@619501d)) * Remove compile-time error for invalid indices (noir-lang/noir#5466) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Using different generators in private refund ([#7414](AztecProtocol/aztec-packages#7414)) ([59b92ca](AztecProtocol/aztec-packages@59b92ca)), closes [#7320](AztecProtocol/aztec-packages#7320) ### Miscellaneous * **bb:** Fix double increment ([#7428](AztecProtocol/aztec-packages#7428)) ([7870a58](AztecProtocol/aztec-packages@7870a58)) * **boxes:** Adding an init command for an empty project ([#7398](AztecProtocol/aztec-packages#7398)) ([a6a605d](AztecProtocol/aztec-packages@a6a605d)) * Bump bb to 0.45.1 (noir-lang/noir#5469) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Disable flaky cheat code test ([7b8c2ba](AztecProtocol/aztec-packages@7b8c2ba)) * Document EmbeddedCurvePoint (noir-lang/noir#5468) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Minimize usage of get_row in inverse computation ([#7431](AztecProtocol/aztec-packages#7431)) ([f177887](AztecProtocol/aztec-packages@f177887)) * Private refund cleanup ([#7403](AztecProtocol/aztec-packages#7403)) ([ebec8ff](AztecProtocol/aztec-packages@ebec8ff)) * Replace relative paths to noir-protocol-circuits ([842f6d1](AztecProtocol/aztec-packages@842f6d1)) * Unbundle `check_array_is_initialized` (noir-lang/noir#5451) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) </details> <details><summary>barretenberg: 0.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@barretenberg-v0.46.2...barretenberg-v0.46.3) (2024-07-11) ### Features * **avm:** Calldatacopy and return gadget ([#7415](AztecProtocol/aztec-packages#7415)) ([ec39e4e](AztecProtocol/aztec-packages@ec39e4e)), closes [#7381](AztecProtocol/aztec-packages#7381) [#7211](AztecProtocol/aztec-packages#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](AztecProtocol/aztec-packages#7419)) ([108fc5f](AztecProtocol/aztec-packages@108fc5f)) * Integrate new proving systems in e2e ([#6971](AztecProtocol/aztec-packages#6971)) ([723a0c1](AztecProtocol/aztec-packages@723a0c1)) * MSM sorting ([#7351](AztecProtocol/aztec-packages#7351)) ([5cbdc54](AztecProtocol/aztec-packages@5cbdc54)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](AztecProtocol/aztec-packages#7438)) ([2a7494b](AztecProtocol/aztec-packages@2a7494b)) * Memory init with no other ops gate counting ([#7427](AztecProtocol/aztec-packages#7427)) ([e7177ba](AztecProtocol/aztec-packages@e7177ba)) ### Miscellaneous * **bb:** Fix double increment ([#7428](AztecProtocol/aztec-packages#7428)) ([7870a58](AztecProtocol/aztec-packages@7870a58)) * Minimize usage of get_row in inverse computation ([#7431](AztecProtocol/aztec-packages#7431)) ([f177887](AztecProtocol/aztec-packages@f177887)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
With the work from #7050, we can now use the
collapse
function introduced in #7016 to makenote_getter
use rom tables instead of ram, resulting in smaller circuits (see #7016 for details re. why this is the case). Nothing changed in terms of functionality, except that we no longer require the oracle to produce fewer notes than the limit (assuming the filter removes some).This does require however that most notes implement the
Eq
trait, whichcollapse
requires in order to verify the hint. I don't imagine this would be an issue, sinceEq
implementations should be trivial, and automatically implemented once we have metaprogramming.