@@ -10,10 +10,12 @@ use ceno_zkvm::{
10
10
mod alloc;
11
11
use criterion:: * ;
12
12
13
- use ff_ext:: BabyBearExt4 ;
13
+ use ff_ext:: { BabyBearExt4 , GoldilocksExt2 } ;
14
14
use gkr_iop:: cpu:: default_backend_config;
15
15
16
16
use ceno_zkvm:: scheme:: verifier:: ZKVMVerifier ;
17
+ #[ cfg( feature = "gpu" ) ]
18
+ use gkr_iop:: gpu:: get_cuda_hal;
17
19
use mpcs:: BasefoldDefault ;
18
20
use transcript:: BasicTranscript ;
19
21
@@ -28,7 +30,7 @@ criterion_main!(fibonacci_prove_group);
28
30
const NUM_SAMPLES : usize = 10 ;
29
31
30
32
type Pcs = BasefoldDefault < E > ;
31
- type E = BabyBearExt4 ;
33
+ type E = GoldilocksExt2 ;
32
34
33
35
// Relevant init data for fibonacci run
34
36
fn setup ( ) -> ( Program , Platform ) {
@@ -45,33 +47,33 @@ fn fibonacci_prove(c: &mut Criterion) {
45
47
let ( max_num_variables, security_level) = default_backend_config ( ) ;
46
48
let backend = create_backend :: < E , Pcs > ( max_num_variables, security_level) ;
47
49
48
- for max_steps in [ 1usize << 20 , 1usize << 21 , 1usize << 22 ] {
50
+ for max_steps in [ 1usize << 22 , 1usize << 23 , 1usize << 24 ] {
49
51
// retrive 1 << 20th fibonacci element >> max_steps
50
52
let mut hints = CenoStdin :: default ( ) ;
51
53
let _ = hints. write ( & 20 ) ;
52
54
// estimate proof size data first
53
- let result = run_e2e_with_checkpoint :: < E , Pcs , _ , _ > (
54
- create_prover ( backend. clone ( ) ) ,
55
- program. clone ( ) ,
56
- platform. clone ( ) ,
57
- & Vec :: from ( & hints) ,
58
- & [ ] ,
59
- max_steps,
60
- Checkpoint :: Complete ,
61
- ) ;
62
- let proof = result. proof . expect ( "PrepSanityCheck do not provide proof" ) ;
63
- let vk = result. vk . expect ( "PrepSanityCheck do not provide verifier" ) ;
64
-
65
- println ! ( "e2e proof {}" , proof) ;
66
- let transcript = BasicTranscript :: new ( b"riscv" ) ;
67
- let verifier = ZKVMVerifier :: < E , Pcs > :: new ( vk) ;
68
- assert ! (
69
- verifier
70
- . verify_proof_halt( proof, transcript, false )
71
- . expect( "verify proof return with error" ) ,
72
- ) ;
73
- println ! ( ) ;
74
- println ! ( "max_steps = {}" , max_steps) ;
55
+ // let result = run_e2e_with_checkpoint::<E, Pcs, _, _>(
56
+ // create_prover(backend.clone()),
57
+ // program.clone(),
58
+ // platform.clone(),
59
+ // &Vec::from(&hints),
60
+ // &[],
61
+ // max_steps,
62
+ // Checkpoint::Complete,
63
+ // );
64
+ // let proof = result.proof.expect("PrepSanityCheck do not provide proof");
65
+ // let vk = result.vk.expect("PrepSanityCheck do not provide verifier");
66
+ //
67
+ // println!("e2e proof {}", proof);
68
+ // let transcript = BasicTranscript::new(b"riscv");
69
+ // let verifier = ZKVMVerifier::<E, Pcs>::new(vk);
70
+ // assert!(
71
+ // verifier
72
+ // .verify_proof_halt(proof, transcript, false)
73
+ // .expect("verify proof return with error"),
74
+ // );
75
+ // println!();
76
+ // println!("max_steps = {}", max_steps);
75
77
76
78
// expand more input size once runtime is acceptable
77
79
let mut group = c. benchmark_group ( format ! ( "fibonacci_max_steps_{}" , max_steps) ) ;
@@ -86,6 +88,8 @@ fn fibonacci_prove(c: &mut Criterion) {
86
88
|b| {
87
89
b. iter_custom ( |iters| {
88
90
let mut time = Duration :: new ( 0 , 0 ) ;
91
+ // #[cfg(feature = "gpu")]
92
+ // let _unused = get_cuda_hal().unwrap();
89
93
for _ in 0 ..iters {
90
94
let result = run_e2e_with_checkpoint :: < E , Pcs , _ , _ > (
91
95
create_prover ( backend. clone ( ) ) ,
0 commit comments