arnaucube
arnaucube/hyperplonkPublic Self-hosted repository
more parallelization
Charles Chen chancharles92@gmail.com
Fri, 16 Dec 2022 10:03:30 -0500
commit

5d6985b79984c4acb29d9c6e5880e42ab0a7673c

parent

81073dfee104055d67160fe82361d3c29beea525

2 files changed, 6 insertions(+), 11 deletions(-)

jump to
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();