11use super :: hal:: {
2- DeviceTransporter , MainSumcheckProver , MultilinearPolynomial , OpeningProver , ProverBackend ,
3- ProverDevice , TowerProver , TraceCommitter ,
2+ DeviceTransporter , MainSumcheckProver , OpeningProver , ProverDevice , TowerProver , TraceCommitter ,
43} ;
54use crate :: {
65 circuit_builder:: ConstraintSystem ,
@@ -17,8 +16,12 @@ use crate::{
1716} ;
1817use either:: Either ;
1918use ff_ext:: ExtensionField ;
19+ use gkr_iop:: {
20+ cpu:: { CpuBackend , CpuProver } ,
21+ hal:: ProverBackend ,
22+ } ;
2023use itertools:: { Itertools , chain} ;
21- use mpcs:: { Point , PolynomialCommitmentScheme , SecurityLevel } ;
24+ use mpcs:: { Point , PolynomialCommitmentScheme } ;
2225use multilinear_extensions:: {
2326 Expression , Instance ,
2427 mle:: { ArcMultilinearExtension , FieldType , IntoMLE , MultilinearExtension } ,
@@ -28,10 +31,7 @@ use multilinear_extensions::{
2831 virtual_poly:: build_eq_x_r_vec,
2932 virtual_polys:: VirtualPolynomialsBuilder ,
3033} ;
31- use p3:: {
32- field:: { FieldAlgebra , TwoAdicField } ,
33- matrix:: dense:: RowMajorMatrix ,
34- } ;
34+ use p3:: field:: FieldAlgebra ;
3535use rayon:: iter:: { IntoParallelIterator , IntoParallelRefIterator , ParallelIterator } ;
3636use std:: { collections:: BTreeMap , sync:: Arc } ;
3737use sumcheck:: {
@@ -42,63 +42,6 @@ use sumcheck::{
4242use transcript:: Transcript ;
4343use witness:: next_pow2_instance_padding;
4444
45- pub struct CpuBackend < E : ExtensionField , PCS : PolynomialCommitmentScheme < E > > {
46- pub param : PCS :: Param ,
47- _marker : std:: marker:: PhantomData < E > ,
48- }
49-
50- impl < E : ExtensionField , PCS : PolynomialCommitmentScheme < E > > Default for CpuBackend < E , PCS > {
51- fn default ( ) -> Self {
52- Self :: new ( )
53- }
54- }
55-
56- impl < E : ExtensionField , PCS : PolynomialCommitmentScheme < E > > CpuBackend < E , PCS > {
57- pub fn new ( ) -> Self {
58- let param =
59- PCS :: setup ( E :: BaseField :: TWO_ADICITY , SecurityLevel :: Conjecture100bits ) . unwrap ( ) ;
60- Self {
61- param,
62- _marker : std:: marker:: PhantomData ,
63- }
64- }
65- }
66-
67- impl < ' a , E : ExtensionField > MultilinearPolynomial < E > for MultilinearExtension < ' a , E > {
68- fn num_vars ( & self ) -> usize {
69- self . num_vars ( )
70- }
71-
72- fn eval ( & self , point : Point < E > ) -> E {
73- self . evaluate ( & point)
74- }
75- }
76-
77- impl < E : ExtensionField , PCS : PolynomialCommitmentScheme < E > > ProverBackend for CpuBackend < E , PCS > {
78- type E = E ;
79- type Pcs = PCS ;
80- type MultilinearPoly < ' a > = MultilinearExtension < ' a , E > ;
81- type Matrix = RowMajorMatrix < E :: BaseField > ;
82- type PcsData = PCS :: CommitmentWithWitness ;
83- }
84-
85- /// CPU prover for CPU backend
86- pub struct CpuProver < PB : ProverBackend > {
87- backend : PB ,
88- pp : Option < <<PB as ProverBackend >:: Pcs as PolynomialCommitmentScheme < PB :: E > >:: ProverParam > ,
89- largest_poly_size : Option < usize > ,
90- }
91-
92- impl < PB : ProverBackend > CpuProver < PB > {
93- pub fn new ( backend : PB ) -> Self {
94- Self {
95- backend,
96- pp : None ,
97- largest_poly_size : None ,
98- }
99- }
100- }
101-
10245pub struct CpuTowerProver ;
10346
10447impl CpuTowerProver {
0 commit comments