Skip to content

Commit bb3eb54

Browse files
committed
misc refactor
1 parent 1e6c6df commit bb3eb54

2 files changed

Lines changed: 24 additions & 16 deletions

File tree

ceno_cli/src/sdk.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use gkr_iop::hal::ProverBackend;
2121
use mpcs::{Basefold, BasefoldRSParams, PolynomialCommitmentScheme, SecurityLevel};
2222
#[cfg(feature = "gpu")]
2323
use openvm_cuda_backend::engine::GpuBabyBearPoseidon2Engine as BabyBearPoseidon2Engine;
24-
use openvm_native_circuit::{NativeBuilder, NativeConfig};
24+
use openvm_native_circuit::{NativeBuilder, NativeConfig, NativeCpuBuilder};
2525
use openvm_sdk::{RootSC, prover::vm::new_local_prover};
2626
use openvm_stark_backend::{config::StarkGenericConfig, proof::Proof};
2727
#[cfg(not(feature = "gpu"))]
@@ -213,8 +213,8 @@ where
213213
agg_pk.internal_committed_exe.exe.clone(),
214214
)
215215
.expect("internal prover");
216-
let root_prover = new_local_prover::<BabyBearPoseidon2RootEngine, NativeBuilder>(
217-
vb.clone(),
216+
let root_prover = new_local_prover::<BabyBearPoseidon2RootEngine, NativeCpuBuilder>(
217+
Default::default(),
218218
&agg_pk.root_vm_pk,
219219
agg_pk.root_committed_exe.exe.clone(),
220220
)

ceno_recursion/src/aggregation/mod.rs

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use openvm_continuations::{
3131
};
3232
#[cfg(feature = "gpu")]
3333
use openvm_cuda_backend::engine::GpuBabyBearPoseidon2Engine as BabyBearPoseidon2Engine;
34-
use openvm_native_circuit::{NativeBuilder, NativeConfig};
34+
use openvm_native_circuit::{NativeBuilder, NativeConfig, NativeCpuBuilder};
3535
use openvm_native_compiler::{
3636
asm::AsmBuilder,
3737
conversion::{CompilerOptions, convert_program},
@@ -52,6 +52,7 @@ use openvm_stark_sdk::config::baby_bear_poseidon2::BabyBearPoseidon2Engine;
5252
use openvm_stark_sdk::{
5353
config::{
5454
FriParameters, baby_bear_poseidon2::BabyBearPoseidon2Config,
55+
baby_bear_poseidon2_root::BabyBearPoseidon2RootEngine,
5556
fri_params::standard_fri_params_with_100_bits_conjectured_security,
5657
},
5758
engine::StarkFriEngine,
@@ -70,7 +71,6 @@ use openvm_native_compiler::{
7071
};
7172
use openvm_sdk::util::check_max_constraint_degrees;
7273
use openvm_stark_backend::proof::Proof;
73-
use openvm_stark_sdk::config::baby_bear_poseidon2_root::BabyBearPoseidon2RootEngine;
7474

7575
mod internal;
7676
mod root;
@@ -91,7 +91,7 @@ const VM_MAX_TRACE_HEIGHTS: &[u32] = &[
9191
pub struct CenoAggregationProver {
9292
pub leaf_prover: VmInstance<BabyBearPoseidon2Engine, NativeBuilder>,
9393
pub internal_prover: VmInstance<BabyBearPoseidon2Engine, NativeBuilder>,
94-
pub root_prover: VmInstance<BabyBearPoseidon2RootEngine, NativeBuilder>,
94+
pub root_prover: VmInstance<BabyBearPoseidon2RootEngine, NativeCpuBuilder>,
9595
pub vk: CenoRecursionVerifierKeys<BabyBearPoseidon2Config>,
9696
pub pk: CenoRecursionProvingKeys<BabyBearPoseidon2Config, NativeConfig>,
9797
}
@@ -100,7 +100,7 @@ impl CenoAggregationProver {
100100
pub fn new(
101101
leaf_prover: VmInstance<BabyBearPoseidon2Engine, NativeBuilder>,
102102
internal_prover: VmInstance<BabyBearPoseidon2Engine, NativeBuilder>,
103-
root_prover: VmInstance<BabyBearPoseidon2RootEngine, NativeBuilder>,
103+
root_prover: VmInstance<BabyBearPoseidon2RootEngine, NativeCpuBuilder>,
104104
pk: CenoRecursionProvingKeys<BabyBearPoseidon2Config, NativeConfig>,
105105
) -> Self {
106106
Self {
@@ -242,9 +242,12 @@ impl CenoAggregationProver {
242242

243243
let mut root_engine = BabyBearPoseidon2RootEngine::new(root_fri_params);
244244
root_engine.max_constraint_degree = ROOT_MAX_CONSTRAINT_DEG;
245-
let (root_vm, root_vm_pk) =
246-
VirtualMachine::new_with_keygen(root_engine, vb.clone(), root_vm_config.clone())
247-
.expect("root keygen");
245+
let (root_vm, root_vm_pk) = VirtualMachine::<_, NativeCpuBuilder>::new_with_keygen(
246+
root_engine,
247+
Default::default(),
248+
root_vm_config.clone(),
249+
)
250+
.expect("root keygen");
248251
let root_program = CenoRootVmVerifierConfig {
249252
leaf_fri_params,
250253
internal_fri_params,
@@ -263,8 +266,8 @@ impl CenoAggregationProver {
263266
vm_config: root_vm_config,
264267
vm_pk: root_vm_pk,
265268
});
266-
let root_prover = new_local_prover::<BabyBearPoseidon2RootEngine, NativeBuilder>(
267-
vb.clone(),
269+
let root_prover = new_local_prover::<BabyBearPoseidon2RootEngine, NativeCpuBuilder>(
270+
Default::default(),
268271
&root_vm_pk,
269272
root_committed_exe.exe.clone(),
270273
)
@@ -416,12 +419,17 @@ impl CenoAggregationProver {
416419
public_values: user_public_values,
417420
};
418421

422+
let root_start_timestamp = Instant::now();
419423
let root_proof = SingleSegmentVmProver::prove(
420424
&mut self.root_prover,
421425
root_input.write(),
422426
VM_MAX_TRACE_HEIGHTS,
423427
)
424428
.expect("root proof generation should pass");
429+
println!(
430+
"Root - Completed root proof at: {:?}",
431+
root_start_timestamp.elapsed()
432+
);
425433

426434
// Export root proof
427435
let file = File::create("root_proof.bin").expect("Create export proof file");
@@ -440,13 +448,13 @@ impl CenoAggregationProver {
440448
}
441449

442450
pub fn verify_root_proof(
443-
vk: &MultiStarkVerifyingKey<RootSC>,
451+
vk: &CenoRecursionVerifierKeys<SC>,
444452
root_proof: &Proof<RootSC>,
445453
) -> Result<(), VerificationError> {
446454
let root_fri_params =
447455
FriParameters::standard_with_100_bits_conjectured_security(ROOT_LOG_BLOWUP);
448456
let root_engine = BabyBearPoseidon2RootEngine::new(root_fri_params);
449-
root_engine.verify(vk, root_proof)?;
457+
root_engine.verify(&vk.root_vm_vk, root_proof)?;
450458
Ok(())
451459
}
452460

@@ -744,8 +752,8 @@ mod tests {
744752
.expect("root proof verification should pass");
745753

746754
// Method 2: Use stand-alone verification with only vk
747-
let vk = agg_prover.vk.root_vm_vk;
748-
verify_root_proof(&vk, &root_proof).expect("root proof verification should pass");
755+
verify_root_proof(&agg_prover.vk, &root_proof)
756+
.expect("root proof verification should pass");
749757
}
750758

751759
pub fn verify_single_inner_thread() {

0 commit comments

Comments
 (0)