@@ -5,14 +5,15 @@ use criterion::{
55} ;
66
77use lurk:: {
8+ circuit:: circuit_frame:: MultiFrame ,
89 eval:: {
910 empty_sym_env,
1011 lang:: { Coproc , Lang } ,
1112 Evaluator ,
1213 } ,
1314 field:: LurkField ,
14- proof:: nova:: NovaProver ,
1515 proof:: Prover ,
16+ proof:: { nova:: NovaProver , MultiFrameTrait } ,
1617 ptr:: Ptr ,
1718 public_parameters,
1819 state:: State ,
@@ -70,7 +71,7 @@ fn end2end_benchmark(c: &mut Criterion) {
7071 let prover = NovaProver :: new ( reduction_count, lang_pallas) ;
7172
7273 // use cached public params
73- let pp = public_parameters:: public_params (
74+ let pp = public_parameters:: public_params :: < _ , _ , MultiFrame < ' _ , _ , Coproc < pallas :: Scalar > > > (
7475 reduction_count,
7576 true ,
7677 lang_pallas_rc. clone ( ) ,
@@ -87,7 +88,7 @@ fn end2end_benchmark(c: &mut Criterion) {
8788 b. iter ( || {
8889 let ptr = go_base :: < pallas:: Scalar > ( & mut store, state. clone ( ) , s. 0 , s. 1 ) ;
8990 let _result = prover
90- . evaluate_and_prove ( & pp, ptr, env, & mut store, limit, lang_pallas_rc. clone ( ) )
91+ . evaluate_and_prove ( & pp, ptr, env, & mut store, limit, & lang_pallas_rc)
9192 . unwrap ( ) ;
9293 } )
9394 } ) ;
@@ -290,27 +291,26 @@ fn prove_benchmark(c: &mut Criterion) {
290291 group. bench_with_input ( benchmark_id, & size, |b, & s| {
291292 let ptr = go_base :: < pallas:: Scalar > ( & mut store, state. clone ( ) , s. 0 , s. 1 ) ;
292293 let prover = NovaProver :: new ( reduction_count, lang_pallas. clone ( ) ) ;
293- let pp = public_parameters:: public_params (
294- reduction_count,
295- true ,
296- lang_pallas_rc. clone ( ) ,
297- Utf8Path :: new ( PUBLIC_PARAMS_PATH ) ,
298- )
299- . unwrap ( ) ;
300- let frames = prover
301- . get_evaluation_frames (
302- ptr,
303- empty_sym_env ( & store) ,
304- & store,
305- limit,
294+ let pp =
295+ public_parameters:: public_params :: < _ , _ , MultiFrame < ' _ , _ , Coproc < pallas:: Scalar > > > (
296+ reduction_count,
297+ true ,
306298 lang_pallas_rc. clone ( ) ,
299+ Utf8Path :: new ( PUBLIC_PARAMS_PATH ) ,
307300 )
308301 . unwrap ( ) ;
302+ let frames = MultiFrame :: get_evaluation_frames (
303+ |count| prover. needs_frame_padding ( count) ,
304+ ptr,
305+ empty_sym_env ( & store) ,
306+ & store,
307+ limit,
308+ & lang_pallas,
309+ )
310+ . unwrap ( ) ;
309311
310312 b. iter ( || {
311- let result = prover
312- . prove ( & pp, & frames, & store, lang_pallas_rc. clone ( ) )
313- . unwrap ( ) ;
313+ let result = prover. prove ( & pp, & frames, & store, & lang_pallas_rc) . unwrap ( ) ;
314314 black_box ( result) ;
315315 } )
316316 } ) ;
@@ -340,30 +340,30 @@ fn prove_compressed_benchmark(c: &mut Criterion) {
340340
341341 let state = State :: init_lurk_state ( ) . rccell ( ) ;
342342
343+ let pp = public_parameters:: public_params :: < _ , _ , MultiFrame < ' _ , _ , _ > > (
344+ reduction_count,
345+ true ,
346+ lang_pallas_rc. clone ( ) ,
347+ Utf8Path :: new ( PUBLIC_PARAMS_PATH ) ,
348+ )
349+ . unwrap ( ) ;
350+
343351 group. bench_with_input ( benchmark_id, & size, |b, & s| {
344352 let ptr = go_base :: < pallas:: Scalar > ( & mut store, state. clone ( ) , s. 0 , s. 1 ) ;
345353 let prover = NovaProver :: new ( reduction_count, lang_pallas. clone ( ) ) ;
346- let pp = public_parameters:: public_params (
347- reduction_count,
348- true ,
349- lang_pallas_rc. clone ( ) ,
350- Utf8Path :: new ( PUBLIC_PARAMS_PATH ) ,
354+
355+ let frames = MultiFrame :: get_evaluation_frames (
356+ |count| prover. needs_frame_padding ( count) ,
357+ ptr,
358+ empty_sym_env ( & store) ,
359+ & store,
360+ limit,
361+ & lang_pallas,
351362 )
352363 . unwrap ( ) ;
353- let frames = prover
354- . get_evaluation_frames (
355- ptr,
356- empty_sym_env ( & store) ,
357- & store,
358- limit,
359- lang_pallas_rc. clone ( ) ,
360- )
361- . unwrap ( ) ;
362364
363365 b. iter ( || {
364- let ( proof, _, _, _) = prover
365- . prove ( & pp, & frames, & store, lang_pallas_rc. clone ( ) )
366- . unwrap ( ) ;
366+ let ( proof, _, _, _) = prover. prove ( & pp, & frames, & store, & lang_pallas_rc) . unwrap ( ) ;
367367
368368 let compressed_result = proof. compress ( & pp) . unwrap ( ) ;
369369 black_box ( compressed_result) ;
@@ -395,25 +395,24 @@ fn verify_benchmark(c: &mut Criterion) {
395395 group. bench_with_input ( benchmark_id, & size, |b, & s| {
396396 let ptr = go_base ( & mut store, state. clone ( ) , s. 0 , s. 1 ) ;
397397 let prover = NovaProver :: new ( reduction_count, lang_pallas. clone ( ) ) ;
398- let pp = public_parameters:: public_params (
398+ let pp = public_parameters:: public_params :: < _ , _ , MultiFrame < ' _ , _ , _ > > (
399399 reduction_count,
400400 true ,
401401 lang_pallas_rc. clone ( ) ,
402402 Utf8Path :: new ( PUBLIC_PARAMS_PATH ) ,
403403 )
404404 . unwrap ( ) ;
405- let frames = prover
406- . get_evaluation_frames (
407- ptr,
408- empty_sym_env ( & store) ,
409- & store,
410- limit,
411- lang_pallas_rc. clone ( ) ,
412- )
413- . unwrap ( ) ;
414- let ( proof, z0, zi, num_steps) = prover
415- . prove ( & pp, & frames, & store, lang_pallas_rc. clone ( ) )
416- . unwrap ( ) ;
405+ let frames = MultiFrame :: get_evaluation_frames (
406+ |count| prover. needs_frame_padding ( count) ,
407+ ptr,
408+ empty_sym_env ( & store) ,
409+ & store,
410+ limit,
411+ & lang_pallas,
412+ )
413+ . unwrap ( ) ;
414+ let ( proof, z0, zi, num_steps) =
415+ prover. prove ( & pp, & frames, & store, & lang_pallas_rc) . unwrap ( ) ;
417416
418417 b. iter_batched (
419418 || z0. clone ( ) ,
@@ -453,7 +452,7 @@ fn verify_compressed_benchmark(c: &mut Criterion) {
453452 group. bench_with_input ( benchmark_id, & size, |b, & s| {
454453 let ptr = go_base ( & mut store, state. clone ( ) , s. 0 , s. 1 ) ;
455454 let prover = NovaProver :: new ( reduction_count, lang_pallas. clone ( ) ) ;
456- let pp = public_parameters:: public_params (
455+ let pp = public_parameters:: public_params :: < _ , _ , MultiFrame < ' _ , _ , _ > > (
457456 reduction_count,
458457 true ,
459458 lang_pallas_rc. clone ( ) ,
@@ -469,9 +468,8 @@ fn verify_compressed_benchmark(c: &mut Criterion) {
469468 lang_pallas_rc. clone ( ) ,
470469 )
471470 . unwrap ( ) ;
472- let ( proof, z0, zi, num_steps) = prover
473- . prove ( & pp, & frames, & store, lang_pallas_rc. clone ( ) )
474- . unwrap ( ) ;
471+ let ( proof, z0, zi, num_steps) =
472+ prover. prove ( & pp, & frames, & store, & lang_pallas_rc) . unwrap ( ) ;
475473
476474 let compressed_proof = proof. compress ( & pp) . unwrap ( ) ;
477475
0 commit comments