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

Performance optimizations #6

Merged
merged 227 commits into from
Jun 20, 2023
Merged

Performance optimizations #6

merged 227 commits into from
Jun 20, 2023

Conversation

jonathanpwang
Copy link
Collaborator

Use Brecht's FFT implementation

Add new parallel implementation for permute_expression_pair for lookup table

CPerezz and others added 27 commits January 20, 2023 13:54
…g-explorations#131)

* fix: Force `VerifyFailure` to own the annotations map

Since otherwise we can't move the `VerifyFailure` vec's confortably, and
also, we're required to have a lot of lifetime annotations, it was
decided to force the `VerifyFailure` to own the Annotation maps.

This shouldn't be too harmful as it only triggers when testing.

Resolves: privacy-scaling-explorations#130

* chore: Address clippy lints
…ure/multi-phase-mock-prover

Call `synthesize` in `MockProver` multiple times to behave same as real prover
get (A', S') that is fully multi-threaded: this is a different algorithm
than the original `permute_expression_pair_seq`
privacy-scaling-explorations#149)

* feat: expose mod ule `permutation` and re-export `permutation::keygen::Assembly`

* feat: derive `lone` for `permutation::keygen::Assembly`

* feat: bump MSRV for `inferno`
In MockProver, replace all code that returns an error by an assert that panics instead of returning the error.  This change aims to make it easier to debug circuit code bugs by getting backtraces.
…ing-explorations/feature/debug-assert-mock-prover

feat(MockProver): replace errors by asserts
* test/unwrap_value: escape Value safety in the dev module

* test/mock-prover-values: MockProver exposes the generated columns to tests

* test/mock-prover-values: doc

* mockprover-util: remove unwrap_value

---------

Co-authored-by: Aurélien Nicolas <info@nau.re>
…#152)

* feat: Parallelize `commit` blinder poly generator method

Solves the concerns raised in privacy-scaling-explorations#151 related to the performance of the
random poly generator inside of `commit`.

Resolves: privacy-scaling-explorations#151

* chore: add `from_evals` for Polynomial

* chore: add benches for commit_zk serial vs par

* fix: Correct thread_seeds iter size

* fix: Clippy

* chore: apply review suggestions

* fix: Inconsisten num of Scalars generated parallely

This fix from @ed255 fixes an error on the code proposal which was
rounding the num of Scalars to be generated and so, was producing
failures.

Co-authored-by: Edu <eduardsanou@posteo.net>

* remove: legacy comments & code

---------

Co-authored-by: Edu <eduardsanou@posteo.net>
…2ef87f59d39'

git-subtree-dir: arithmetic/curves
git-subtree-mainline: 2e9c872
git-subtree-split: 05a8032
@jonathanpwang jonathanpwang merged commit 98bc83b into main Jun 20, 2023
jonathanpwang added a commit that referenced this pull request Nov 18, 2023
…17)

* Resolve Prover optimization: memory reduction privacy-scaling-explorations#77 (#6)

* Resolve taikoxyz/zkevm-circuits#77

* Please Clippy

* fix: recursive FFT for lengths not `2^k, 2^extended_k`

Also fixed some issue when multicore feature is not on.

* fix: evaluation (cherry-pick
https://github.com/scroll-tech/halo2-gpu/blob/a3019b047ad7d7119103f4d9df3fd33ce1429f95/halo2_proofs/src/plonk/evaluation.rs)

* fix: `g_to_lagrange` uses inverse fft

* Bump version since this is a breaking change to pk

* chore: update halo2curves version

---------

Co-authored-by: einar-taiko <126954546+einar-taiko@users.noreply.github.com>
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.