Skip to content

Parellalization of Circuits #338

Closed Answered by gbotrel
shreyas-londhe asked this question in Q&A
Discussion options

You must be logged in to vote

hey, so, short answer, the prover already uses all available cores.
Longer version;
frontend.Compile(circuit) -> constraint system
prover.Prove(constraint system, witness) -> 1. solve constraint system 2. encode proof

Encode proof is highly parallelized, and there isn't much room for iimprovment here (other than GPU / FPGA based acceleration).
The first part, solving the constraint system, is "naively" parallelized; constraints that are independent are solved independently, but some pre-processing and smarter grouping of this graph of constraints could improve things a bit. However, in most settings, solving the constraint system is < 5% of the total proving time 👍 (exception for very lar…

Replies: 2 comments 4 replies

Comment options

You must be logged in to vote
3 replies
@shreyas-londhe
Comment options

@gbotrel
Comment options

@shreyas-londhe
Comment options

Answer selected by shreyas-londhe
Comment options

You must be logged in to vote
1 reply
@gbotrel
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
3 participants