Skip to content

Parallelization optimizations#105

Merged
bbuenz merged 8 commits into
mainfrom
arcpariter-new
Dec 19, 2022
Merged

Parallelization optimizations#105
bbuenz merged 8 commits into
mainfrom
arcpariter-new

Conversation

@chancharles92

@chancharles92 chancharles92 commented Dec 16, 2022

Copy link
Copy Markdown
Contributor

List of optimizations on prover:

  1. replace Rc with Arc. (cherrypick from @bbuenz 's branch main...arcpariter)
  2. Apply Rayon parallelization tricks.
  3. Improve the efficiency of constructing partial product polynomial V(0, X) by using batch inversion.

@bbuenz bbuenz 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.

Are all these under the parallel feature flag?

@chancharles92

chancharles92 commented Dec 17, 2022

Copy link
Copy Markdown
Contributor Author

Are all these under the parallel feature flag?

Not yet. We can add parallel feature flag everywhere. The only drawback is that the code will be a little redundant. I can add a commit if we decide to make them under parallel flags.

Btw, currently, we achieve 1-thread performance by command RAYON_NUM_THREADS=1 cargo bench --no-default-features --features=bench.

Comment thread arithmetic/src/multilinear_polynomial.rs Outdated
res[i] = data[i << 1] + (data[(i << 1) + 1] - data[i << 1]) * point;
}
}
res.par_iter_mut().enumerate().for_each(|(i, x)| {

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.

Should we continue to make parallel dependent on nv?

@bbuenz bbuenz merged commit 77bc9f5 into main Dec 19, 2022
@bbuenz bbuenz deleted the arcpariter-new branch December 19, 2022 18:55
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