more parallelization
Charles Chen chancharles92@gmail.com
Fri, 16 Dec 2022 10:03:30 -0500
2 files changed,
6 insertions(+),
11 deletions(-)
M
hyperplonk/src/snark.rs
→
hyperplonk/src/snark.rs
@@ -76,7 +76,7 @@ .map(|s| Arc::new(DenseMultilinearExtension::from(s)))
.collect(); let selector_commitments = selector_oracles - .iter() + .par_iter() .map(|poly| PCS::commit(&pcs_prover_param, poly)) .collect::<Result<Vec<_>, _>>()?;
M
subroutines/src/poly_iop/sum_check/prover.rs
→
subroutines/src/poly_iop/sum_check/prover.rs
@@ -9,7 +9,7 @@ use arithmetic::{fix_variables, VirtualPolynomial};
use ark_ff::PrimeField; use ark_poly::DenseMultilinearExtension; use ark_std::{end_timer, start_timer, vec::Vec}; -use rayon::prelude::IntoParallelIterator; +use rayon::prelude::{IntoParallelIterator, IntoParallelRefIterator}; use std::sync::Arc; #[cfg(feature = "parallel")]@@ -71,7 +71,7 @@ // eval g over r_m, and mutate g to g(r_1, ... r_m,, x_{m+1}... x_n)
let mut flattened_ml_extensions: Vec<DenseMultilinearExtension<F>> = self .poly .flattened_ml_extensions - .iter() + .par_iter() .map(|x| x.as_ref().clone()) .collect();@@ -132,9 +132,7 @@ * (table1[(b << 1) + 1] + table1[(b << 1) + 1] - table1[b << 1])
} }) .collect::<Vec<F>>(); - for val in evals.iter() { - *e += val - } + *e += evals.par_iter().sum::<F>(); } } else { for (t, e) in products_sum.iter_mut().enumerate() {@@ -161,10 +159,7 @@
tmp }) .collect::<Vec<F>>(); - - for i in products.iter() { - *e += i - } + *e += products.par_iter().sum::<F>(); } } }@@ -190,7 +185,7 @@ });
// update prover's state to the partial evaluated polynomial self.poly.flattened_ml_extensions = flattened_ml_extensions - .iter() + .par_iter() .map(|x| Arc::new(x.clone())) .collect();