Skip to content

Commit

Permalink
perf: Dory's compute_T_vec_prime should be able to use Blitzar's fixe…
Browse files Browse the repository at this point in the history
…d MSM (PROOF-876) (#7)

# 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](ba506b0).

# 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.
  • Loading branch information
jacobtrombetta authored Jun 19, 2024
1 parent 4e1d994 commit 22bec93
Show file tree
Hide file tree
Showing 7 changed files with 462 additions and 343 deletions.
Loading

0 comments on commit 22bec93

Please sign in to comment.