Merge pull request #707 from mir-protocol/par_fri_queries

Compute answers to FRI queries in parallel
This commit is contained in:
Daniel Lubarov 2022-09-05 10:06:51 -07:00 committed by GitHub
commit 92a0075ac9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -149,15 +149,12 @@ fn fri_prover_query_rounds<
n: usize, n: usize,
fri_params: &FriParams, fri_params: &FriParams,
) -> Vec<FriQueryRound<F, C::Hasher, D>> { ) -> Vec<FriQueryRound<F, C::Hasher, D>> {
(0..fri_params.config.num_query_rounds) challenger
.map(|_| { .get_n_challenges(fri_params.config.num_query_rounds)
fri_prover_query_round::<F, C, D>( .into_par_iter()
initial_merkle_trees, .map(|rand| {
trees, let x_index = rand.to_canonical_u64() as usize % n;
challenger, fri_prover_query_round::<F, C, D>(initial_merkle_trees, trees, x_index, fri_params)
n,
fri_params,
)
}) })
.collect() .collect()
} }
@ -169,13 +166,10 @@ fn fri_prover_query_round<
>( >(
initial_merkle_trees: &[&MerkleTree<F, C::Hasher>], initial_merkle_trees: &[&MerkleTree<F, C::Hasher>],
trees: &[MerkleTree<F, C::Hasher>], trees: &[MerkleTree<F, C::Hasher>],
challenger: &mut Challenger<F, C::Hasher>, mut x_index: usize,
n: usize,
fri_params: &FriParams, fri_params: &FriParams,
) -> FriQueryRound<F, C::Hasher, D> { ) -> FriQueryRound<F, C::Hasher, D> {
let mut query_steps = Vec::new(); let mut query_steps = Vec::new();
let x = challenger.get_challenge();
let mut x_index = x.to_canonical_u64() as usize % n;
let initial_proof = initial_merkle_trees let initial_proof = initial_merkle_trees
.iter() .iter()
.map(|t| (t.get(x_index).to_vec(), t.prove(x_index))) .map(|t| (t.get(x_index).to_vec(), t.prove(x_index)))