Integrate cuda-sumcheck

This commit is contained in:
Soowon Jeong
2024-11-01 06:19:14 +00:00
parent b24110b45b
commit da3f36dca6
3 changed files with 57 additions and 0 deletions

View File

@@ -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
View 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!()
}
}

View File

@@ -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 {