mirror of
https://github.com/arnaucube/hyperplonk.git
synced 2026-01-10 16:11:29 +01:00
more parallelization
This commit is contained in:
@@ -76,7 +76,7 @@ where
|
|||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let selector_commitments = selector_oracles
|
let selector_commitments = selector_oracles
|
||||||
.iter()
|
.par_iter()
|
||||||
.map(|poly| PCS::commit(&pcs_prover_param, poly))
|
.map(|poly| PCS::commit(&pcs_prover_param, poly))
|
||||||
.collect::<Result<Vec<_>, _>>()?;
|
.collect::<Result<Vec<_>, _>>()?;
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ use arithmetic::{fix_variables, VirtualPolynomial};
|
|||||||
use ark_ff::PrimeField;
|
use ark_ff::PrimeField;
|
||||||
use ark_poly::DenseMultilinearExtension;
|
use ark_poly::DenseMultilinearExtension;
|
||||||
use ark_std::{end_timer, start_timer, vec::Vec};
|
use ark_std::{end_timer, start_timer, vec::Vec};
|
||||||
use rayon::prelude::IntoParallelIterator;
|
use rayon::prelude::{IntoParallelIterator, IntoParallelRefIterator};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
#[cfg(feature = "parallel")]
|
#[cfg(feature = "parallel")]
|
||||||
@@ -71,7 +71,7 @@ impl<F: PrimeField> SumCheckProver<F> for IOPProverState<F> {
|
|||||||
let mut flattened_ml_extensions: Vec<DenseMultilinearExtension<F>> = self
|
let mut flattened_ml_extensions: Vec<DenseMultilinearExtension<F>> = self
|
||||||
.poly
|
.poly
|
||||||
.flattened_ml_extensions
|
.flattened_ml_extensions
|
||||||
.iter()
|
.par_iter()
|
||||||
.map(|x| x.as_ref().clone())
|
.map(|x| x.as_ref().clone())
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
@@ -132,9 +132,7 @@ impl<F: PrimeField> SumCheckProver<F> for IOPProverState<F> {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.collect::<Vec<F>>();
|
.collect::<Vec<F>>();
|
||||||
for val in evals.iter() {
|
*e += evals.par_iter().sum::<F>();
|
||||||
*e += val
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (t, e) in products_sum.iter_mut().enumerate() {
|
for (t, e) in products_sum.iter_mut().enumerate() {
|
||||||
@@ -161,10 +159,7 @@ impl<F: PrimeField> SumCheckProver<F> for IOPProverState<F> {
|
|||||||
tmp
|
tmp
|
||||||
})
|
})
|
||||||
.collect::<Vec<F>>();
|
.collect::<Vec<F>>();
|
||||||
|
*e += products.par_iter().sum::<F>();
|
||||||
for i in products.iter() {
|
|
||||||
*e += i
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -190,7 +185,7 @@ impl<F: PrimeField> SumCheckProver<F> for IOPProverState<F> {
|
|||||||
|
|
||||||
// update prover's state to the partial evaluated polynomial
|
// update prover's state to the partial evaluated polynomial
|
||||||
self.poly.flattened_ml_extensions = flattened_ml_extensions
|
self.poly.flattened_ml_extensions = flattened_ml_extensions
|
||||||
.iter()
|
.par_iter()
|
||||||
.map(|x| Arc::new(x.clone()))
|
.map(|x| Arc::new(x.clone()))
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user