EspressoSystems / hyperplonk

MIT License
181 stars 38 forks source link

Parallelization optimizations #105

Closed chancharles92 closed 1 year ago

chancharles92 commented 1 year ago

List of optimizations on prover:

  1. replace Rc with Arc. (cherrypick from @bbuenz 's branch https://github.com/EspressoSystems/hyperplonk/compare/main...arcpariter)
  2. Apply Rayon parallelization tricks.
  3. Improve the efficiency of constructing partial product polynomial V(0, X) by using batch inversion.
chancharles92 commented 1 year ago

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.