This commit is contained in:
Sebastien La Duca 2022-07-21 17:02:03 -04:00
parent 529add1c0a
commit 81e14bf5b3
7 changed files with 150 additions and 138 deletions

View File

@ -1,22 +1,21 @@
#[cfg(not(feature = "parallel"))]
use std::{
iter::{IntoIterator, Iterator},
slice::{Chunks, ChunksExact, ChunksMut, ChunksExactMut},
};
#[cfg(feature = "parallel")]
use rayon::{
prelude::*,
slice::{Chunks as ParChunks, ChunksMut as ParChunksMut, ChunksExact as ParChunksExact, ChunksExactMut as ParChunksExactMut, ParallelSlice, ParallelSliceMut}
slice::{Chunks, ChunksExact, ChunksExactMut, ChunksMut},
};
#[cfg(feature = "parallel")]
pub use rayon::prelude::{
IndexedParallelIterator, ParallelDrainFull, ParallelDrainRange, ParallelExtend,
ParallelIterator,
IndexedParallelIterator,
ParallelExtend,
ParallelDrainFull,
ParallelDrainRange
};
#[cfg(feature = "parallel")]
use rayon::{
prelude::*,
slice::{
Chunks as ParChunks, ChunksExact as ParChunksExact, ChunksExactMut as ParChunksExactMut,
ChunksMut as ParChunksMut, ParallelSlice, ParallelSliceMut,
},
};
pub trait MaybeParIter<'data> {
@ -36,7 +35,10 @@ pub trait MaybeParIter<'data> {
}
#[cfg(feature = "parallel")]
impl<'data, T> MaybeParIter<'data> for T where T: ?Sized + IntoParallelRefIterator<'data> {
impl<'data, T> MaybeParIter<'data> for T
where
T: ?Sized + IntoParallelRefIterator<'data>,
{
type Item = T::Item;
type Iter = T::Iter;
@ -82,7 +84,10 @@ pub trait MaybeParIterMut<'data> {
}
#[cfg(feature = "parallel")]
impl<'data, T> MaybeParIterMut<'data> for T where T: ?Sized + IntoParallelRefMutIterator<'data> {
impl<'data, T> MaybeParIterMut<'data> for T
where
T: ?Sized + IntoParallelRefMutIterator<'data>,
{
type Item = T::Item;
type Iter = T::Iter;
@ -128,7 +133,10 @@ pub trait MaybeIntoParIter {
}
#[cfg(feature = "parallel")]
impl<T> MaybeIntoParIter for T where T: IntoParallelIterator {
impl<T> MaybeIntoParIter for T
where
T: IntoParallelIterator,
{
type Item = T::Item;
type Iter = T::Iter;
@ -138,7 +146,10 @@ impl<T> MaybeIntoParIter for T where T: IntoParallelIterator {
}
#[cfg(not(feature = "parallel"))]
impl<T> MaybeIntoParIter for T where T: IntoIterator {
impl<T> MaybeIntoParIter for T
where
T: IntoIterator,
{
type Item = T::Item;
type Iter = T::IntoIter;
@ -192,7 +203,6 @@ pub trait MaybeParChunksMut<T: Send> {
fn par_chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, T>;
}
#[cfg(feature = "parallel")]
impl<T: ?Sized + ParallelSliceMut<U>, U: Send> MaybeParChunksMut<U> for T {
fn par_chunks_mut(&mut self, chunk_size: usize) -> ParChunksMut<'_, U> {
@ -225,7 +235,7 @@ impl<T: Iterator> ParallelIteratorMock for T {
fn find_any<P>(mut self, predicate: P) -> Option<Self::Item>
where
P: Fn(&Self::Item) -> bool + Sync + Send
P: Fn(&Self::Item) -> bool + Sync + Send,
{
self.find(predicate)
}
@ -233,17 +243,19 @@ impl<T: Iterator> ParallelIteratorMock for T {
#[cfg(feature = "parallel")]
pub fn join<A, B, RA, RB>(oper_a: A, oper_b: B) -> (RA, RB)
where A: FnOnce() -> RA + Send,
where
A: FnOnce() -> RA + Send,
B: FnOnce() -> RB + Send,
RA: Send,
RB: Send
RB: Send,
{
rayon::join(oper_a, oper_b)
}
#[cfg(not(feature = "parallel"))]
pub fn join<A, B, RA, RB>(oper_a: A, oper_b: B) -> (RA, RB)
where A: FnOnce() -> RA,
where
A: FnOnce() -> RA,
B: FnOnce() -> RB,
{
(oper_a(), oper_b())

View File

@ -1,11 +1,11 @@
use itertools::Itertools;
use maybe_rayon::*;
use plonky2_field::extension::Extendable;
use plonky2_field::fft::FftRootTable;
use plonky2_field::packed::PackedField;
use plonky2_field::polynomial::{PolynomialCoeffs, PolynomialValues};
use plonky2_field::types::Field;
use plonky2_util::{log2_strict, reverse_index_bits_in_place};
use maybe_rayon::*;
use crate::fri::proof::FriProof;
use crate::fri::prover::fri_proof;

View File

@ -1,8 +1,8 @@
use itertools::Itertools;
use maybe_rayon::*;
use plonky2_field::extension::{flatten, unflatten, Extendable};
use plonky2_field::polynomial::{PolynomialCoeffs, PolynomialValues};
use plonky2_util::reverse_index_bits_in_place;
use maybe_rayon::*;
use crate::fri::proof::{FriInitialTreeProof, FriProof, FriQueryRound, FriQueryStep};
use crate::fri::{FriConfig, FriParams};

View File

@ -1,10 +1,10 @@
use std::mem::MaybeUninit;
use std::slice;
use maybe_rayon::*;
use plonky2_util::log2_strict;
use serde::{Deserialize, Serialize};
use maybe_rayon::*;
use crate::hash::hash_types::RichField;
use crate::hash::merkle_proofs::MerkleProof;
use crate::plonk::config::GenericHashOut;

View File

@ -1,8 +1,8 @@
use std::collections::HashMap;
use maybe_rayon::*;
use plonky2_field::polynomial::PolynomialValues;
use plonky2_field::types::Field;
use maybe_rayon::*;
use crate::iop::target::Target;
use crate::iop::wire::Wire;

View File

@ -1,7 +1,7 @@
use anyhow::ensure;
use maybe_rayon::*;
use plonky2_field::extension::Extendable;
use serde::{Deserialize, Serialize};
use maybe_rayon::*;
use crate::fri::oracle::PolynomialBatch;
use crate::fri::proof::{

View File

@ -2,11 +2,11 @@ use std::mem::swap;
use anyhow::ensure;
use anyhow::Result;
use maybe_rayon::*;
use plonky2_field::extension::Extendable;
use plonky2_field::polynomial::{PolynomialCoeffs, PolynomialValues};
use plonky2_field::zero_poly_coset::ZeroPolyOnCoset;
use plonky2_util::{ceil_div_usize, log2_ceil};
use maybe_rayon::*;
use crate::field::types::Field;
use crate::fri::oracle::PolynomialBatch;