Skip to content

feat: skip calculation of partial sums when simulating blobs#11257

Merged
TomAFrench merged 22 commits into
masterfrom
tf/optimize-blob-simulation
Feb 3, 2025
Merged

feat: skip calculation of partial sums when simulating blobs#11257
TomAFrench merged 22 commits into
masterfrom
tf/optimize-blob-simulation

Conversation

@TomAFrench

Copy link
Copy Markdown
Member

When simulating the bloblib we're constructing this partial_sums array despite the fact we're going to throw it away except for the final element. This means that we're

  • needing to deal with the indirection of reading/writing to arrays
  • increasing the reference counts of the partial sums so we need to do more copying.

This PR adds a specialized version of computing the sum which only runs during simulation which cuts rollup-block-root from 54859 brillig opcodes to 51480.

Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr
TomAFrench and others added 3 commits January 20, 2025 14:29
* master: (29 commits)
  feat(p2p): batch request response (#11331)
  chore: Try fix flakey public processor test (#11348)
  chore: Point to monorepo's nargo in vscode workspace settings (#11349)
  feat(p2p): request response node sampling (#11330)
  chore: Trace propagation from json rpc client to server (#11325)
  feat(p2p): send goodbye messages on disconnecting to peers (#10920)
  fix(bootstrap): include crates in noir projects hashes (#11344)
  chore: Add OTEL_EXCLUDE_METRICS (#11317)
  chore: Test starting multiple anvils allocates distinct ports (#11314)
  fix: move eslint in circuits.js to dev deps (#11340)
  fix: update devbox (#11339)
  chore(p2p): reorganise reqresp handlers (#11327)
  fix(readme): remove stale link (#11333)
  git subrepo push --branch=master noir-projects/aztec-nr
  git_subrepo.sh: Fix parent in .gitrepo file. [skip ci]
  chore: replace relative paths to noir-protocol-circuits
  git subrepo push --branch=master barretenberg
  chore: bump CRS and constants (#11306)
  git subrepo push --branch=master noir-projects/aztec-nr
  git_subrepo.sh: Fix parent in .gitrepo file. [skip ci]
  ...
@TomAFrench

Copy link
Copy Markdown
Member Author

bump

@guipublic guipublic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@TomAFrench TomAFrench enabled auto-merge (squash) January 22, 2025 15:32
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
Comment thread noir-projects/noir-protocol-circuits/crates/blob/src/blob.nr Outdated
@TomAFrench TomAFrench merged commit aca66f7 into master Feb 3, 2025
@TomAFrench TomAFrench deleted the tf/optimize-blob-simulation branch February 3, 2025 16:00
@github-actions

github-actions Bot commented Feb 3, 2025

Copy link
Copy Markdown
Contributor

Changes to public function bytecode sizes

Generated at commit: 911b7c2c2aae0dcf640a326956076d1c54a87482, compared to commit: 3b463f9f9376393c5f781cf2495c6db379308aca

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
Token::public_dispatch +1,758 ❌ +5.52%
FPC::public_dispatch -1,566 ✅ -15.59%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
Token::public_dispatch 33,597 (+1,758) +5.52%
FPC::public_dispatch 8,482 (-1,566) -15.59%

sklppy88 pushed a commit that referenced this pull request Feb 4, 2025
🤖 I have created a release *beep* *boop*
---


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

##
[0.74.0](aztec-package-v0.73.0...aztec-package-v0.74.0)
(2025-02-04)


### Miscellaneous

* Ensure new kv-store is used on the server
([#11662](#11662))
([aee1420](aee1420))
</details>

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

##
[0.74.0](barretenberg.js-v0.73.0...barretenberg.js-v0.74.0)
(2025-02-04)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

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

##
[0.74.0](aztec-packages-v0.73.0...aztec-packages-v0.74.0)
(2025-02-04)


### ⚠ BREAKING CHANGES

* time library
([#11542](#11542))

### Features

* `u128.ts` accepting string on input
([#11664](#11664))
([bb25992](bb25992))
* Add network, better drawer performance
([#11694](#11694))
([1f61822](1f61822))
* Skip calculation of partial sums when simulating blobs
([#11257](#11257))
([aca66f7](aca66f7))
* Time library
([#11542](#11542))
([3b463f9](3b463f9)),
closes
[#11520](#11520)
* UltraHonkZK contract
([#11553](#11553))
([a68369f](a68369f))


### Bug Fixes

* Add bootstrap.sh to rebuild_patterns
([#11683](#11683))
([e84a81a](e84a81a))
* **archiver:** Do not attempt to decode blob before filtering
([#11668](#11668))
([961cbdd](961cbdd))
* Barretenber/stdlib/logic bugs
([#11651](#11651))
([dddab22](dddab22))
* Barretenberg/stdlib/logic bugs (redo)
([#11691](#11691))
([6d0bad7](6d0bad7))
* **docs:** Keys docs update
([#11665](#11665))
([ce3d92c](ce3d92c))
* Revert "barretenberg/stdlib/logic bugs"
([#11689](#11689))
([b99570d](b99570d))
* Solidity verifier caching
([#11712](#11712))
([2ba1e71](2ba1e71))
* Use eth-execution label
([#11713](#11713))
([d3c31d8](d3c31d8))


### Miscellaneous

* Add tests for gov proposer
([#11633](#11633))
([5c6a48a](5c6a48a)),
closes
[#11681](#11681)
* **bb-prover:** Avm test skip and split
([#11717](#11717))
([1778867](1778867))
* Benchmark sha256 number of instructions executed in AVM
([#11253](#11253))
([aaf0d8c](aaf0d8c))
* Delete MerkleTrees implementation in JS
([#11697](#11697))
([1db7b78](1db7b78))
* Ensure new kv-store is used on the server
([#11662](#11662))
([aee1420](aee1420))
* Field encoding should use `fromString` instead of `fromHexString`
([#11585](#11585))
([43fdbb1](43fdbb1)),
closes
[#10331](#10331)
* Improve boxes
([#11656](#11656))
([46a3e85](46a3e85))
* Increase node pool count and don't use a release channel
([#11687](#11687))
([65a3f11](65a3f11))
* Mark contracts as pub
([#11241](#11241))
([b168601](b168601))
* Reduce memory requests on prover node
([#11678](#11678))
([a720151](a720151))
* Remove profiler cache fallback
([#11680](#11680))
([a305aef](a305aef))
* Remove some templates in templates
([#11698](#11698))
([61614b1](61614b1))
* Remove unused functions from public side effect trace
([#11600](#11600))
([54e9602](54e9602))
* Replace relative paths to noir-protocol-circuits
([739151e](739151e))
* Replace relative paths to noir-protocol-circuits
([bbd526c](bbd526c))
* **sequencer:** Add InvalidArchive to canProposeAtNextEthBlock ignored
errors
([#11682](#11682))
([eea4bd3](eea4bd3))
* **spartan:** Remove hardcoded keys and addresses - derive all from
mnemonic
([#11672](#11672))
([65f0e48](65f0e48))
* Turn off auto-upgrade in node-pools
([#11679](#11679))
([09f98a9](09f98a9))
* Turn on masking in ultra and mega zk + oink clean-up
([#11693](#11693))
([08e96fe](08e96fe))


### Documentation

* Update mig notes release version
([#11685](#11685))
([46a30b5](46a30b5))
</details>

<details><summary>barretenberg: 0.74.0</summary>

##
[0.74.0](barretenberg-v0.73.0...barretenberg-v0.74.0)
(2025-02-04)


### Features

* UltraHonkZK contract
([#11553](#11553))
([a68369f](a68369f))


### Bug Fixes

* Barretenber/stdlib/logic bugs
([#11651](#11651))
([dddab22](dddab22))
* Barretenberg/stdlib/logic bugs (redo)
([#11691](#11691))
([6d0bad7](6d0bad7))
* Revert "barretenberg/stdlib/logic bugs"
([#11689](#11689))
([b99570d](b99570d))


### Miscellaneous

* Ensure new kv-store is used on the server
([#11662](#11662))
([aee1420](aee1420))
* Remove some templates in templates
([#11698](#11698))
([61614b1](61614b1))
* Turn on masking in ultra and mega zk + oink clean-up
([#11693](#11693))
([08e96fe](08e96fe))
</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 Feb 5, 2025
🤖 I have created a release *beep* *boop*
---


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

##
[0.74.0](AztecProtocol/aztec-packages@aztec-package-v0.73.0...aztec-package-v0.74.0)
(2025-02-04)


### Miscellaneous

* Ensure new kv-store is used on the server
([#11662](AztecProtocol/aztec-packages#11662))
([aee1420](AztecProtocol/aztec-packages@aee1420))
</details>

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

##
[0.74.0](AztecProtocol/aztec-packages@barretenberg.js-v0.73.0...barretenberg.js-v0.74.0)
(2025-02-04)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

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

##
[0.74.0](AztecProtocol/aztec-packages@aztec-packages-v0.73.0...aztec-packages-v0.74.0)
(2025-02-04)


### ⚠ BREAKING CHANGES

* time library
([#11542](AztecProtocol/aztec-packages#11542))

### Features

* `u128.ts` accepting string on input
([#11664](AztecProtocol/aztec-packages#11664))
([bb25992](AztecProtocol/aztec-packages@bb25992))
* Add network, better drawer performance
([#11694](AztecProtocol/aztec-packages#11694))
([1f61822](AztecProtocol/aztec-packages@1f61822))
* Skip calculation of partial sums when simulating blobs
([#11257](AztecProtocol/aztec-packages#11257))
([aca66f7](AztecProtocol/aztec-packages@aca66f7))
* Time library
([#11542](AztecProtocol/aztec-packages#11542))
([3b463f9](AztecProtocol/aztec-packages@3b463f9)),
closes
[#11520](AztecProtocol/aztec-packages#11520)
* UltraHonkZK contract
([#11553](AztecProtocol/aztec-packages#11553))
([a68369f](AztecProtocol/aztec-packages@a68369f))


### Bug Fixes

* Add bootstrap.sh to rebuild_patterns
([#11683](AztecProtocol/aztec-packages#11683))
([e84a81a](AztecProtocol/aztec-packages@e84a81a))
* **archiver:** Do not attempt to decode blob before filtering
([#11668](AztecProtocol/aztec-packages#11668))
([961cbdd](AztecProtocol/aztec-packages@961cbdd))
* Barretenber/stdlib/logic bugs
([#11651](AztecProtocol/aztec-packages#11651))
([dddab22](AztecProtocol/aztec-packages@dddab22))
* Barretenberg/stdlib/logic bugs (redo)
([#11691](AztecProtocol/aztec-packages#11691))
([6d0bad7](AztecProtocol/aztec-packages@6d0bad7))
* **docs:** Keys docs update
([#11665](AztecProtocol/aztec-packages#11665))
([ce3d92c](AztecProtocol/aztec-packages@ce3d92c))
* Revert "barretenberg/stdlib/logic bugs"
([#11689](AztecProtocol/aztec-packages#11689))
([b99570d](AztecProtocol/aztec-packages@b99570d))
* Solidity verifier caching
([#11712](AztecProtocol/aztec-packages#11712))
([2ba1e71](AztecProtocol/aztec-packages@2ba1e71))
* Use eth-execution label
([#11713](AztecProtocol/aztec-packages#11713))
([d3c31d8](AztecProtocol/aztec-packages@d3c31d8))


### Miscellaneous

* Add tests for gov proposer
([#11633](AztecProtocol/aztec-packages#11633))
([5c6a48a](AztecProtocol/aztec-packages@5c6a48a)),
closes
[#11681](AztecProtocol/aztec-packages#11681)
* **bb-prover:** Avm test skip and split
([#11717](AztecProtocol/aztec-packages#11717))
([1778867](AztecProtocol/aztec-packages@1778867))
* Benchmark sha256 number of instructions executed in AVM
([#11253](AztecProtocol/aztec-packages#11253))
([aaf0d8c](AztecProtocol/aztec-packages@aaf0d8c))
* Delete MerkleTrees implementation in JS
([#11697](AztecProtocol/aztec-packages#11697))
([1db7b78](AztecProtocol/aztec-packages@1db7b78))
* Ensure new kv-store is used on the server
([#11662](AztecProtocol/aztec-packages#11662))
([aee1420](AztecProtocol/aztec-packages@aee1420))
* Field encoding should use `fromString` instead of `fromHexString`
([#11585](AztecProtocol/aztec-packages#11585))
([43fdbb1](AztecProtocol/aztec-packages@43fdbb1)),
closes
[#10331](AztecProtocol/aztec-packages#10331)
* Improve boxes
([#11656](AztecProtocol/aztec-packages#11656))
([46a3e85](AztecProtocol/aztec-packages@46a3e85))
* Increase node pool count and don't use a release channel
([#11687](AztecProtocol/aztec-packages#11687))
([65a3f11](AztecProtocol/aztec-packages@65a3f11))
* Mark contracts as pub
([#11241](AztecProtocol/aztec-packages#11241))
([b168601](AztecProtocol/aztec-packages@b168601))
* Reduce memory requests on prover node
([#11678](AztecProtocol/aztec-packages#11678))
([a720151](AztecProtocol/aztec-packages@a720151))
* Remove profiler cache fallback
([#11680](AztecProtocol/aztec-packages#11680))
([a305aef](AztecProtocol/aztec-packages@a305aef))
* Remove some templates in templates
([#11698](AztecProtocol/aztec-packages#11698))
([61614b1](AztecProtocol/aztec-packages@61614b1))
* Remove unused functions from public side effect trace
([#11600](AztecProtocol/aztec-packages#11600))
([54e9602](AztecProtocol/aztec-packages@54e9602))
* Replace relative paths to noir-protocol-circuits
([739151e](AztecProtocol/aztec-packages@739151e))
* Replace relative paths to noir-protocol-circuits
([bbd526c](AztecProtocol/aztec-packages@bbd526c))
* **sequencer:** Add InvalidArchive to canProposeAtNextEthBlock ignored
errors
([#11682](AztecProtocol/aztec-packages#11682))
([eea4bd3](AztecProtocol/aztec-packages@eea4bd3))
* **spartan:** Remove hardcoded keys and addresses - derive all from
mnemonic
([#11672](AztecProtocol/aztec-packages#11672))
([65f0e48](AztecProtocol/aztec-packages@65f0e48))
* Turn off auto-upgrade in node-pools
([#11679](AztecProtocol/aztec-packages#11679))
([09f98a9](AztecProtocol/aztec-packages@09f98a9))
* Turn on masking in ultra and mega zk + oink clean-up
([#11693](AztecProtocol/aztec-packages#11693))
([08e96fe](AztecProtocol/aztec-packages@08e96fe))


### Documentation

* Update mig notes release version
([#11685](AztecProtocol/aztec-packages#11685))
([46a30b5](AztecProtocol/aztec-packages@46a30b5))
</details>

<details><summary>barretenberg: 0.74.0</summary>

##
[0.74.0](AztecProtocol/aztec-packages@barretenberg-v0.73.0...barretenberg-v0.74.0)
(2025-02-04)


### Features

* UltraHonkZK contract
([#11553](AztecProtocol/aztec-packages#11553))
([a68369f](AztecProtocol/aztec-packages@a68369f))


### Bug Fixes

* Barretenber/stdlib/logic bugs
([#11651](AztecProtocol/aztec-packages#11651))
([dddab22](AztecProtocol/aztec-packages@dddab22))
* Barretenberg/stdlib/logic bugs (redo)
([#11691](AztecProtocol/aztec-packages#11691))
([6d0bad7](AztecProtocol/aztec-packages@6d0bad7))
* Revert "barretenberg/stdlib/logic bugs"
([#11689](AztecProtocol/aztec-packages#11689))
([b99570d](AztecProtocol/aztec-packages@b99570d))


### Miscellaneous

* Ensure new kv-store is used on the server
([#11662](AztecProtocol/aztec-packages#11662))
([aee1420](AztecProtocol/aztec-packages@aee1420))
* Remove some templates in templates
([#11698](AztecProtocol/aztec-packages#11698))
([61614b1](AztecProtocol/aztec-packages@61614b1))
* Turn on masking in ultra and mega zk + oink clean-up
([#11693](AztecProtocol/aztec-packages#11693))
([08e96fe](AztecProtocol/aztec-packages@08e96fe))
</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.

4 participants