Skip to content
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: better initialization for permutation mapping components #10750

Merged
merged 9 commits into from
Dec 17, 2024

Conversation

ledwards2225
Copy link
Contributor

@ledwards2225 ledwards2225 commented Dec 15, 2024

Constructing the permutation argument polynomials (sigmas/ids) involves constructing an intermediate object of type PermutationMapping which contains information about the copy constraints in the circuit. The initialization of this object was inefficient in two ways: (1) the components were zero initialized only to be immediately initialized to non-zero values, and (2) the initialization was not multithreaded. This PR introduces a minor refactor of the underlying structures in PermutationMapping so that the zero initialization can be avoided altogether and the initialization to non-zero values can be done in parallel. (In particular instead of vectors of a struct with components {uint32_t, uint8_t, bool, bool}, we now have shared pointers to arrays of the corresponding type {*uint32_t[], *uint8_t[], *bool[], *bool[]}. This structure allows for efficient use of the slab allocator and removes the need to default zero initialize).

Benchmark highlights for the case of 2^17 circuits in a 2^20 trace:

Master:

ClientIVCBench/Full/6      24684 ms        20203 ms
DeciderProvingKey(Circuit&)(t)          2365
compute_permutation_argument_polynomials(t)=912.772M

Branch:

ClientIVCBench/Full/6      23955 ms        19680 ms
DeciderProvingKey(Circuit&)(t)          1834     8.02%
compute_permutation_argument_polynomials(t)=437.54M

@ledwards2225 ledwards2225 marked this pull request as ready for review December 15, 2024 22:27
* It will belong to a CyclicPermutation, such that all nodes in a CyclicPermutation
* must have the value.
* The total number of constraints is always <2^32 since that is the type used to represent variables, so we can save
* space by using a type smaller than size_t.
*/
struct cycle_node {
uint32_t wire_index;
uint32_t gate_index;
uint32_t wire_idx;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was using both idx and index arbitrarily so I updated to use only idx everywhere

@ledwards2225 ledwards2225 self-assigned this Dec 16, 2024
Copy link
Contributor

@lucasxia01 lucasxia01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't see the changes for the reset_acir_tests script, but seems fine in general.

@@ -45,40 +45,77 @@ struct cycle_node {
*
*/
struct permutation_subgroup_element {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can this be deleted now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, thanks

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sadly, this has to stay - its used in a bunch of plonk methods/tests that I cannot bring myself to spend time updating

PROFILE_THIS_NAME("PermutationMapping constructor");

for (uint8_t col_idx = 0; col_idx < NUM_WIRES; ++col_idx) {
sigmas[col_idx].reserve(circuit_size);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought reserve doesn't actually initialize memory, just allocates it

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah that's true, I thought I worked out that there was an extra zero init happening somewhere but now I dont see it. Maybe it was just that with this old approach is was very difficult to implement multithreading without one of either zero initializing or copy overhead

* @brief Stores permutation mapping data for a single wire column
*
*/
struct Mapping {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think the new structure of 4 arrays is better than the original structure of a vector of structs? My thought is its probably slightly more efficient for memory, and therefore slightly better for cache efficiency as a result.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The constructor went from 500ms to 30ms so thats all the proof I need. Having a vector/array of structs makes it impossible to use the slab allocator to allocate memory and difficult to multithread the initialization without either 0 initializing or doing lots of copying to "join" thread local data. I tried to find a slightly cleaner solution but this one was by far the fastest I could come up with

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it, yeah. Is _allocate_aligned_memory multithreaded?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it doesnt appear to be multithreaded no, but it does seem to allow reuse of a previous slab that was allocated for something else then no longer needed. I also get quite a good speedup from naively allocating a raw buffer but the slab allocator was noticeably better

@ledwards2225
Copy link
Contributor Author

Don't see the changes for the reset_acir_tests script, but seems fine in general.

forgot to push the commit with those changes - its there now

PROGRAMS=""

# Parse the arguments
while [[ "$#" -gt 0 ]]; do
case $1 in
--rebuild-nargo)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for this

@ledwards2225 ledwards2225 merged commit 1516d7f into master Dec 17, 2024
77 checks passed
@ledwards2225 ledwards2225 deleted the lde/perm_map_init branch December 17, 2024 17:21
ludamad pushed a commit that referenced this pull request Dec 17, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.67.1</summary>

##
[0.67.1](aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
</details>

<details><summary>barretenberg.js: 0.67.1</summary>

##
[0.67.1](barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
</details>

<details><summary>aztec-packages: 0.67.1</summary>

##
[0.67.1](aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](d74d0fc))
* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* **avm:** Migrate simulator memory to a map
([#10715](#10715))
([64d5f2b](64d5f2b)),
closes
[#10370](#10370)
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Blobs 2.
([#10188](#10188))
([d0a4b2f](d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](#10059))
([1e15bf5](1e15bf5))
* Check max fees per gas
([#10283](#10283))
([4e59b06](4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](8956e28))
* Json output for get_node_info
([#10771](#10771))
([b086c52](b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](#10695))
([9cce2c6](9cce2c6))
* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](8956e28))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))
* TXE detects duplicate nullifiers
([#10764](#10764))
([7f70110](7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](#10722))
([5e4b46d](5e4b46d))
* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Cache
([#10692](#10692))
([1b1306c](1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
* **ci:** Network-test timing
([#10725](#10725))
([9c9a2dc](9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](8956e28))
* Get e2e jobs
([#10689](#10689))
([37e1999](37e1999))
* Give build:fast a try in build
([#10702](#10702))
([32095f6](32095f6))
* Minimal change to avoid reverting entire PR
[#6685](#6685)
(noir-lang/noir#6778)
([8956e28](8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](8956e28))
* Race condition in block stream
([#10779](#10779))
([64bccd0](64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](#10795))
([f540fbe](f540fbe))
* **testdata:** Relative path calculation
([#10791](#10791))
([5a530db](5a530db))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](8956e28))
* Use throw instead of reject in broker facade
([#10735](#10735))
([cc6a72b](cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](#10716))
([bbbf38b](bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](308c5ce))
* Add errors to abis
([#10697](#10697))
([5c8e017](5c8e017))
* Add retries for prover node p2p test
([#10699](#10699))
([4115bf9](4115bf9))
* Add spans to proving job
([#10794](#10794))
([df3c51b](df3c51b))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](#10690))
([b6c9c41](b6c9c41))
* Better reqresp logging + handle empty responses in snappy
([#10657](#10657))
([934107f](934107f))
* Bump metrics and node pool
([#10745](#10745))
([9bb88bf](9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](381b0b8))
* Cleanup after e2e tests
([#10748](#10748))
([284b0a4](284b0a4))
* Disable ARM CI
([#10682](#10682))
([b16945b](b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](308c5ce))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](381b0b8))
* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Hot fixes
([4e00dc4](4e00dc4))
* Log error in retry module
([#10719](#10719))
([84ea539](84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](381b0b8))
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
* **p2p:** Move services into folders
([#10694](#10694))
([e28d12a](e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](#10672))
([41fc0f0](41fc0f0))
* Remove default export for noir contracts js
([#10762](#10762))
([c8e7763](c8e7763))
* Remove sinon in favor of a date provider
([#10705](#10705))
([3d3fabb](3d3fabb))
* Remove spurious echo
([#10774](#10774))
([5538f8c](5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](b19c561))
* Set max txs in spam test
([#10717](#10717))
([a50ff6c](a50ff6c))
* Slack notifications for networks
([#10784](#10784))
([bab9f85](bab9f85))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](8956e28))
* Sync grafana dashboard
([#10792](#10792))
([421fb65](421fb65))
* Tagging cleanup
([#10675](#10675))
([52b541a](52b541a))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
* Update external joiner script for new networks
([#10810](#10810))
([5f11cf4](5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))


### Miscellaneous

* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
ludamad pushed a commit that referenced this pull request Dec 18, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.67.1</summary>

##
[0.67.1](aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
</details>

<details><summary>barretenberg.js: 0.67.1</summary>

##
[0.67.1](barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
</details>

<details><summary>aztec-packages: 0.67.1</summary>

##
[0.67.1](aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](d74d0fc))
* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* **avm:** Migrate simulator memory to a map
([#10715](#10715))
([64d5f2b](64d5f2b)),
closes
[#10370](#10370)
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Blobs 2.
([#10188](#10188))
([d0a4b2f](d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](#10059))
([1e15bf5](1e15bf5))
* Check max fees per gas
([#10283](#10283))
([4e59b06](4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](8956e28))
* Don't store every block number in block indices DB
([#10658](#10658))
([a3fba84](a3fba84))
* Json output for get_node_info
([#10771](#10771))
([b086c52](b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](#10695))
([9cce2c6](9cce2c6))
* **p2p:** Attestation pool persistence
([#10667](#10667))
([dacef9f](dacef9f))
* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](8956e28))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))
* TXE detects duplicate nullifiers
([#10764](#10764))
([7f70110](7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](#10722))
([5e4b46d](5e4b46d))
* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](#10731))
([b8bdb52](b8bdb52))
* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Block building test timeout
([#10812](#10812))
([2cad3e5](2cad3e5))
* Cache
([#10692](#10692))
([1b1306c](1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
* **ci:** Network-test timing
([#10725](#10725))
([9c9a2dc](9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](8956e28))
* Get e2e jobs
([#10689](#10689))
([37e1999](37e1999))
* Give build:fast a try in build
([#10702](#10702))
([32095f6](32095f6))
* Minimal change to avoid reverting entire PR
[#6685](#6685)
(noir-lang/noir#6778)
([8956e28](8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](8956e28))
* Race condition in block stream
([#10779](#10779))
([64bccd0](64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](#10795))
([f540fbe](f540fbe))
* **testdata:** Relative path calculation
([#10791](#10791))
([5a530db](5a530db))
* Try fix e2e epochs in CI
([#10804](#10804))
([ba28788](ba28788))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](8956e28))
* Use throw instead of reject in broker facade
([#10735](#10735))
([cc6a72b](cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](#10716))
([bbbf38b](bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](308c5ce))
* Add errors to abis
([#10697](#10697))
([5c8e017](5c8e017))
* Add retries for prover node p2p test
([#10699](#10699))
([4115bf9](4115bf9))
* Add spans to proving job
([#10794](#10794))
([df3c51b](df3c51b))
* Average alerts across namespace for 1 hour
([#10827](#10827))
([962a7a2](962a7a2))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](#10690))
([b6c9c41](b6c9c41))
* **avm:** Radix opcode - remove immediates
([#10696](#10696))
([4ac13e6](4ac13e6)),
closes
[#10371](#10371)
* Better reqresp logging + handle empty responses in snappy
([#10657](#10657))
([934107f](934107f))
* Bump metrics and node pool
([#10745](#10745))
([9bb88bf](9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](381b0b8))
* Cleanup after e2e tests
([#10748](#10748))
([284b0a4](284b0a4))
* Disable ARM CI
([#10682](#10682))
([b16945b](b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](308c5ce))
* **docs:** Update migration notes
([#10829](#10829))
([be7cadf](be7cadf))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](381b0b8))
* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Log error in retry module
([#10719](#10719))
([84ea539](84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](381b0b8))
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
* **p2p:** Move services into folders
([#10694](#10694))
([e28d12a](e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](#10672))
([41fc0f0](41fc0f0))
* Remove default export for noir contracts js
([#10762](#10762))
([c8e7763](c8e7763))
* Remove sinon in favor of a date provider
([#10705](#10705))
([3d3fabb](3d3fabb))
* Remove spurious echo
([#10774](#10774))
([5538f8c](5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](b19c561))
* Set max txs in spam test
([#10717](#10717))
([a50ff6c](a50ff6c))
* Slack notifications for networks
([#10784](#10784))
([bab9f85](bab9f85))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](8956e28))
* Sync grafana dashboard
([#10792](#10792))
([421fb65](421fb65))
* Tagging cleanup
([#10675](#10675))
([52b541a](52b541a))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
* Update external joiner script for new networks
([#10810](#10810))
([5f11cf4](5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Don't store every block number in block indices DB
([#10658](#10658))
([a3fba84](a3fba84))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](#10731))
([b8bdb52](b8bdb52))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))


### Miscellaneous

* **avm:** Radix opcode - remove immediates
([#10696](#10696))
([4ac13e6](4ac13e6)),
closes
[#10371](#10371)
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Dec 18, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.67.1</summary>

##
[0.67.1](AztecProtocol/aztec-packages@aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](AztecProtocol/aztec-packages#10778))
([e2fd046](AztecProtocol/aztec-packages@e2fd046))
* Split up protocol contract artifacts
([#10765](AztecProtocol/aztec-packages#10765))
([5a9ca18](AztecProtocol/aztec-packages@5a9ca18))
* Trace and handle errors in running promises
([#10645](AztecProtocol/aztec-packages#10645))
([4cc0a6d](AztecProtocol/aztec-packages@4cc0a6d))
</details>

<details><summary>barretenberg.js: 0.67.1</summary>

##
[0.67.1](AztecProtocol/aztec-packages@barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](AztecProtocol/aztec-packages#10704))
([46da3cc](AztecProtocol/aztec-packages@46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](AztecProtocol/aztec-packages#10747))
([309b5f7](AztecProtocol/aztec-packages@309b5f7)),
closes
[#10741](AztecProtocol/aztec-packages#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](AztecProtocol/aztec-packages#10769))
([6a5bcfd](AztecProtocol/aztec-packages@6a5bcfd))
</details>

<details><summary>aztec-packages: 0.67.1</summary>

##
[0.67.1](AztecProtocol/aztec-packages@aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](AztecProtocol/aztec-packages@d74d0fc))
* Add tree equality assertions
([#10756](AztecProtocol/aztec-packages#10756))
([923826a](AztecProtocol/aztec-packages@923826a))
* **avm:** Migrate simulator memory to a map
([#10715](AztecProtocol/aztec-packages#10715))
([64d5f2b](AztecProtocol/aztec-packages@64d5f2b)),
closes
[#10370](AztecProtocol/aztec-packages#10370)
* Better initialization for permutation mapping components
([#10750](AztecProtocol/aztec-packages#10750))
([1516d7f](AztecProtocol/aztec-packages@1516d7f))
* Blobs 2.
([#10188](AztecProtocol/aztec-packages#10188))
([d0a4b2f](AztecProtocol/aztec-packages@d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](AztecProtocol/aztec-packages#10059))
([1e15bf5](AztecProtocol/aztec-packages@1e15bf5))
* Check max fees per gas
([#10283](AztecProtocol/aztec-packages#10283))
([4e59b06](AztecProtocol/aztec-packages@4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Don't store every block number in block indices DB
([#10658](AztecProtocol/aztec-packages#10658))
([a3fba84](AztecProtocol/aztec-packages@a3fba84))
* Json output for get_node_info
([#10771](AztecProtocol/aztec-packages#10771))
([b086c52](AztecProtocol/aztec-packages@b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](AztecProtocol/aztec-packages#10649))
([a437e73](AztecProtocol/aztec-packages@a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](AztecProtocol/aztec-packages#10777))
([9fbcff6](AztecProtocol/aztec-packages@9fbcff6))
* Note hash management in the AVM
([#10666](AztecProtocol/aztec-packages#10666))
([e077980](AztecProtocol/aztec-packages@e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](AztecProtocol/aztec-packages#10695))
([9cce2c6](AztecProtocol/aztec-packages@9cce2c6))
* **p2p:** Attestation pool persistence
([#10667](AztecProtocol/aztec-packages#10667))
([dacef9f](AztecProtocol/aztec-packages@dacef9f))
* PXE browser proving
([#10704](AztecProtocol/aztec-packages#10704))
([46da3cc](AztecProtocol/aztec-packages@46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Sumcheck with disabled rows
([#10068](AztecProtocol/aztec-packages#10068))
([abd2226](AztecProtocol/aztec-packages@abd2226))
* TXE detects duplicate nullifiers
([#10764](AztecProtocol/aztec-packages#10764))
([7f70110](AztecProtocol/aztec-packages@7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](AztecProtocol/aztec-packages#10722))
([5e4b46d](AztecProtocol/aztec-packages@5e4b46d))
* Avm gas and non-member
([#10709](AztecProtocol/aztec-packages#10709))
([dd8cc7b](AztecProtocol/aztec-packages@dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](AztecProtocol/aztec-packages#10731))
([b8bdb52](AztecProtocol/aztec-packages@b8bdb52))
* **bb.js:** Use globalThis instead of self
([#10747](AztecProtocol/aztec-packages#10747))
([309b5f7](AztecProtocol/aztec-packages@309b5f7)),
closes
[#10741](AztecProtocol/aztec-packages#10741)
* Block building test timeout
([#10812](AztecProtocol/aztec-packages#10812))
([2cad3e5](AztecProtocol/aztec-packages@2cad3e5))
* Cache
([#10692](AztecProtocol/aztec-packages#10692))
([1b1306c](AztecProtocol/aztec-packages@1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](AztecProtocol/aztec-packages#10769))
([6a5bcfd](AztecProtocol/aztec-packages@6a5bcfd))
* **ci:** Network-test timing
([#10725](AztecProtocol/aztec-packages#10725))
([9c9a2dc](AztecProtocol/aztec-packages@9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Get e2e jobs
([#10689](AztecProtocol/aztec-packages#10689))
([37e1999](AztecProtocol/aztec-packages@37e1999))
* Give build:fast a try in build
([#10702](AztecProtocol/aztec-packages#10702))
([32095f6](AztecProtocol/aztec-packages@32095f6))
* Minimal change to avoid reverting entire PR
[#6685](AztecProtocol/aztec-packages#6685)
(noir-lang/noir#6778)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Race condition in block stream
([#10779](AztecProtocol/aztec-packages#10779))
([64bccd0](AztecProtocol/aztec-packages@64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](AztecProtocol/aztec-packages#10795))
([f540fbe](AztecProtocol/aztec-packages@f540fbe))
* **testdata:** Relative path calculation
([#10791](AztecProtocol/aztec-packages#10791))
([5a530db](AztecProtocol/aztec-packages@5a530db))
* Try fix e2e epochs in CI
([#10804](AztecProtocol/aztec-packages#10804))
([ba28788](AztecProtocol/aztec-packages@ba28788))
* Use correct size for databus_id
([#10673](AztecProtocol/aztec-packages#10673))
([95eb658](AztecProtocol/aztec-packages@95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Use throw instead of reject in broker facade
([#10735](AztecProtocol/aztec-packages#10735))
([cc6a72b](AztecProtocol/aztec-packages@cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](AztecProtocol/aztec-packages#10716))
([bbbf38b](AztecProtocol/aztec-packages@bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* Add errors to abis
([#10697](AztecProtocol/aztec-packages#10697))
([5c8e017](AztecProtocol/aztec-packages@5c8e017))
* Add retries for prover node p2p test
([#10699](AztecProtocol/aztec-packages#10699))
([4115bf9](AztecProtocol/aztec-packages@4115bf9))
* Add spans to proving job
([#10794](AztecProtocol/aztec-packages#10794))
([df3c51b](AztecProtocol/aztec-packages@df3c51b))
* Average alerts across namespace for 1 hour
([#10827](AztecProtocol/aztec-packages#10827))
([962a7a2](AztecProtocol/aztec-packages@962a7a2))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](AztecProtocol/aztec-packages#10690))
([b6c9c41](AztecProtocol/aztec-packages@b6c9c41))
* **avm:** Radix opcode - remove immediates
([#10696](AztecProtocol/aztec-packages#10696))
([4ac13e6](AztecProtocol/aztec-packages@4ac13e6)),
closes
[#10371](AztecProtocol/aztec-packages#10371)
* Better reqresp logging + handle empty responses in snappy
([#10657](AztecProtocol/aztec-packages#10657))
([934107f](AztecProtocol/aztec-packages@934107f))
* Bump metrics and node pool
([#10745](AztecProtocol/aztec-packages#10745))
([9bb88bf](AztecProtocol/aztec-packages@9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](AztecProtocol/aztec-packages@d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Cleanup after e2e tests
([#10748](AztecProtocol/aztec-packages#10748))
([284b0a4](AztecProtocol/aztec-packages@284b0a4))
* Disable ARM CI
([#10682](AztecProtocol/aztec-packages#10682))
([b16945b](AztecProtocol/aztec-packages@b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **docs:** Update migration notes
([#10829](AztecProtocol/aztec-packages#10829))
([be7cadf](AztecProtocol/aztec-packages@be7cadf))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Granular CLI imports to reduce start time
([#10778](AztecProtocol/aztec-packages#10778))
([e2fd046](AztecProtocol/aztec-packages@e2fd046))
* Log error in retry module
([#10719](AztecProtocol/aztec-packages#10719))
([84ea539](AztecProtocol/aztec-packages@84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Move decider PK allocation to methods
([#10670](AztecProtocol/aztec-packages#10670))
([1ab9e30](AztecProtocol/aztec-packages@1ab9e30))
* **p2p:** Move services into folders
([#10694](AztecProtocol/aztec-packages#10694))
([e28d12a](AztecProtocol/aztec-packages@e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](AztecProtocol/aztec-packages#10672))
([41fc0f0](AztecProtocol/aztec-packages@41fc0f0))
* Remove default export for noir contracts js
([#10762](AztecProtocol/aztec-packages#10762))
([c8e7763](AztecProtocol/aztec-packages@c8e7763))
* Remove sinon in favor of a date provider
([#10705](AztecProtocol/aztec-packages#10705))
([3d3fabb](AztecProtocol/aztec-packages@3d3fabb))
* Remove spurious echo
([#10774](AztecProtocol/aztec-packages#10774))
([5538f8c](AztecProtocol/aztec-packages@5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](AztecProtocol/aztec-packages@f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](AztecProtocol/aztec-packages@b19c561))
* Set max txs in spam test
([#10717](AztecProtocol/aztec-packages#10717))
([a50ff6c](AztecProtocol/aztec-packages@a50ff6c))
* Slack notifications for networks
([#10784](AztecProtocol/aztec-packages#10784))
([bab9f85](AztecProtocol/aztec-packages@bab9f85))
* Split up protocol contract artifacts
([#10765](AztecProtocol/aztec-packages#10765))
([5a9ca18](AztecProtocol/aztec-packages@5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Sync grafana dashboard
([#10792](AztecProtocol/aztec-packages#10792))
([421fb65](AztecProtocol/aztec-packages@421fb65))
* Tagging cleanup
([#10675](AztecProtocol/aztec-packages#10675))
([52b541a](AztecProtocol/aztec-packages@52b541a))
* Trace and handle errors in running promises
([#10645](AztecProtocol/aztec-packages#10645))
([4cc0a6d](AztecProtocol/aztec-packages@4cc0a6d))
* Update external joiner script for new networks
([#10810](AztecProtocol/aztec-packages#10810))
([5f11cf4](AztecProtocol/aztec-packages@5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](AztecProtocol/aztec-packages@barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](AztecProtocol/aztec-packages#10756))
([923826a](AztecProtocol/aztec-packages@923826a))
* Better initialization for permutation mapping components
([#10750](AztecProtocol/aztec-packages#10750))
([1516d7f](AztecProtocol/aztec-packages@1516d7f))
* Don't store every block number in block indices DB
([#10658](AztecProtocol/aztec-packages#10658))
([a3fba84](AztecProtocol/aztec-packages@a3fba84))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](AztecProtocol/aztec-packages#10649))
([a437e73](AztecProtocol/aztec-packages@a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](AztecProtocol/aztec-packages#10777))
([9fbcff6](AztecProtocol/aztec-packages@9fbcff6))
* Note hash management in the AVM
([#10666](AztecProtocol/aztec-packages#10666))
([e077980](AztecProtocol/aztec-packages@e077980))
* Sumcheck with disabled rows
([#10068](AztecProtocol/aztec-packages#10068))
([abd2226](AztecProtocol/aztec-packages@abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](AztecProtocol/aztec-packages#10709))
([dd8cc7b](AztecProtocol/aztec-packages@dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](AztecProtocol/aztec-packages#10731))
([b8bdb52](AztecProtocol/aztec-packages@b8bdb52))
* Use correct size for databus_id
([#10673](AztecProtocol/aztec-packages#10673))
([95eb658](AztecProtocol/aztec-packages@95eb658))


### Miscellaneous

* **avm:** Radix opcode - remove immediates
([#10696](AztecProtocol/aztec-packages#10696))
([4ac13e6](AztecProtocol/aztec-packages@4ac13e6)),
closes
[#10371](AztecProtocol/aztec-packages#10371)
* Move decider PK allocation to methods
([#10670](AztecProtocol/aztec-packages#10670))
([1ab9e30](AztecProtocol/aztec-packages@1ab9e30))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants