Skip to content

Commit

Permalink
feat: make SupraSeal take less memory and work with large batches
Browse files Browse the repository at this point in the history
SupraSeal is so efficient as it leverages the fact that the Filecoin
circuits have a specific shape. This can also be used for a more
memory efficient representation during synthesis.

This makes the synthesis less memory intensive and thus makes it
possible to synthesize more circuits in parallel. The prover still
needs the normal representation, hence is still memory intensive.
We run a batch size of 5 instead of 10, which even reduces that memory
footprint a lot which justified the additional computation costs.

Those changes enables proving a large number of proofs pretty
efficiently, which makes it suitable for Filecoins non-interactive
PoRep.

All those optimization are only for the SupraSeal code path as they
are kind of Filecoin specific.
  • Loading branch information
vmx committed Dec 14, 2023
1 parent d4bdbe4 commit 69b83f6
Show file tree
Hide file tree
Showing 5 changed files with 697 additions and 231 deletions.
2 changes: 1 addition & 1 deletion src/groth16/params.rs
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ where
}
}

pub trait ParameterSource<E>: Send + Sync
pub trait ParameterSource<E>: Clone + Send + Sync
where
E: MultiMillerLoop,
{
Expand Down
Loading

0 comments on commit 69b83f6

Please sign in to comment.