perf: improve plonk prover memory footprint #806
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR start to target the issue of high memory usage by the PlonK prover.
Current status: memory usage in the Prover down by 35% (low hanging fruits)
It removes some unnecessary allocations, conversions. Also prepare the polynomials in LagrangeCoset form in a memory layout that performs better for
iop.Evaluate...
.Post Consensys/gnark-crypto#437, (reduces memory usage of FFT domains), here is roughly what the ProvingKey consumes in RAM (x axis: size of circuit (pow), y: Mb.). The
ExpandedTrace
correspond to theTrace
polynomials inLagrangeCoset
basis.