mirror of
https://github.com/pseXperiments/clookup.git
synced 2026-01-09 15:47:56 -05:00
Integrate cuda-sumcheck
This commit is contained in:
@@ -25,6 +25,9 @@ ark-std = { version = "^0.4.0", default-features = false, optional = true }
|
||||
# concurrency
|
||||
rayon = "1.8"
|
||||
|
||||
# cuda
|
||||
cuda-sumcheck = { git = "https://github.com/pseXperiments/cuda-sumcheck.git", tag = "v0.1.0", package = "sumcheck" }
|
||||
|
||||
[dev-dependencies]
|
||||
criterion = { version = "0.4", features = ["html_reports"] }
|
||||
|
||||
|
||||
53
src/sumcheck/cuda.rs
Normal file
53
src/sumcheck/cuda.rs
Normal file
@@ -0,0 +1,53 @@
|
||||
use super::{SumCheck, VirtualPolynomial};
|
||||
use crate::utils::ProtocolError;
|
||||
use ff::PrimeField;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct CudaSumcheck;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct CudaSumcheckProverParam {
|
||||
num_vars: usize,
|
||||
max_degree: usize,
|
||||
}
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct CudaSumcheckVerifierParam {
|
||||
num_vars: usize,
|
||||
max_degree: usize,
|
||||
}
|
||||
|
||||
impl<F: PrimeField> SumCheck<F> for CudaSumcheck {
|
||||
type ProverParam = CudaSumcheckProverParam;
|
||||
type VerifierParam = CudaSumcheckVerifierParam;
|
||||
|
||||
fn generate_pp(num_vars: usize, max_degree: usize) -> Result<Self::ProverParam, ProtocolError> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn generate_vp(
|
||||
num_vars: usize,
|
||||
max_degree: usize,
|
||||
) -> Result<Self::VerifierParam, ProtocolError> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn prove(
|
||||
pp: &Self::ProverParam,
|
||||
combine_function: &impl Fn(&Vec<F>) -> F,
|
||||
sum: F,
|
||||
virtual_poly: VirtualPolynomial<F>,
|
||||
transcript: &mut impl crate::utils::transcript::FieldTranscriptWrite<F>,
|
||||
) -> Result<(Vec<F>, Vec<F>), ProtocolError> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn verify(
|
||||
vp: &Self::VerifierParam,
|
||||
degree: usize,
|
||||
sum: F,
|
||||
num_polys: usize,
|
||||
transcript: &mut impl crate::utils::transcript::FieldTranscriptRead<F>,
|
||||
) -> Result<(F, Vec<F>, Vec<F>), ProtocolError> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@ use crate::{
|
||||
};
|
||||
|
||||
pub mod classic;
|
||||
pub mod cuda;
|
||||
pub mod parallel;
|
||||
|
||||
pub fn eq_xy_eval<F: PrimeField>(x: &[F], y: &[F]) -> F {
|
||||
|
||||
Reference in New Issue
Block a user