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

perf: Dory's compute_T_vec_prime should be able to use Blitzar's fixed MSM (PROOF-876) #7

Merged
merged 10 commits into from
Jun 19, 2024

Conversation

jacobtrombetta
Copy link
Contributor

@jacobtrombetta jacobtrombetta commented Jun 12, 2024

Rationale for this change

When creating a Dory proof the compute_T_vec_prime function requires multiple MSMs. The current implementation of this function only supports the use of the Arkworks library, which only runs on the CPU. In an effort to improve the performance of Dory, this PR introduces the Blitzar fixed MSM to compute_T_vec_prime when appropriate to perform the MSM computations.

The commit focusing only on performance changes is available here.

What changes are included in this PR?

  • compute_T_vec_prime now supports Blitzar's fixed MSM if the feature flag "blitzar" is turned on. The CPU version using Arkworks is still supported.
  • The transpose_column and related functions appearing in the dory_commitment_helper_gpu class are moved into a separate class, transpose.
  • Added a reference to the blitzar_handle to the ProverSetup.
    • Removed par_iter() in eval_vmv_re.rs because *mut blitzar_sys::sxt_multiexp_handle cannot be shared between threads safely.

Are these changes tested?

Yes, on both CPU and GPU.

@iajoiner iajoiner merged commit 22bec93 into main Jun 19, 2024
8 checks passed
@iajoiner iajoiner deleted the perf/compute-t-vec-blitzar-PROOF-876 branch June 19, 2024 17:12
Copy link

🎉 This PR is included in version 0.2.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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.

3 participants