@@ -20,7 +20,6 @@ fn bench_evaluate(c: &mut Criterion) {
2020
2121 let mut rng = StdRng :: seed_from_u64 ( 0 ) ;
2222 let delta = Delta :: random ( & mut rng) ;
23- let seed: [ u8 ; 16 ] = rng. random ( ) ;
2423
2524 // Prepare inputs
2625 let inputs: Vec < Key > = ( 0 ..256 ) . map ( |_| rng. random ( ) ) . collect ( ) ;
@@ -38,12 +37,10 @@ fn bench_evaluate(c: &mut Criterion) {
3837 let actual_gates = iterations as u64 * gates_per_circuit;
3938
4039 // Pre-generate garbled circuits (single gates)
41- let mut gb = Garbler :: new ( seed, delta) ;
42- let setup = gb. setup ( ) . unwrap ( ) ;
40+ let mut gb = Garbler :: default ( ) ;
4341 let all_gates: Vec < Vec < _ > > = ( 0 ..iterations)
4442 . map ( |_| {
45- let worker = gb. alloc_worker ( circuit. and_count ( ) ) . unwrap ( ) ;
46- let mut iter = worker. generate ( circuit, & inputs) . unwrap ( ) ;
43+ let mut iter = gb. generate ( circuit, delta, & inputs) . unwrap ( ) ;
4744 let gates: Vec < _ > = iter. by_ref ( ) . collect ( ) ;
4845 let _ = iter. finish ( ) . unwrap ( ) ;
4946 gates
@@ -55,11 +52,9 @@ fn bench_evaluate(c: &mut Criterion) {
5552 // Iterator-based (one gate at a time)
5653 group. bench_function ( BenchmarkId :: new ( "iter" , name) , |b| {
5754 let mut ev = Evaluator :: default ( ) ;
58- ev. setup ( setup. clone ( ) ) . unwrap ( ) ;
5955 b. iter ( || {
6056 for gates in & all_gates {
61- let worker = ev. alloc_worker ( circuit. and_count ( ) ) . unwrap ( ) ;
62- let mut consumer = worker. evaluate ( circuit, & eval_inputs) . unwrap ( ) ;
57+ let mut consumer = ev. evaluate ( circuit, & eval_inputs) . unwrap ( ) ;
6358 for gate in gates {
6459 consumer. next ( * gate) ;
6560 }
@@ -73,19 +68,15 @@ fn bench_evaluate(c: &mut Criterion) {
7368 // iteration
7469 group. bench_function ( BenchmarkId :: new ( "batched" , name) , |b| {
7570 let mut ev = Evaluator :: default ( ) ;
76- ev. setup ( setup. clone ( ) ) . unwrap ( ) ;
77- let mut gb = Garbler :: new ( seed, delta) ;
78- let _ = gb. setup ( ) . unwrap ( ) ;
71+ let mut gb = Garbler :: default ( ) ;
7972 b. iter ( || {
8073 for _ in 0 ..iterations {
8174 // Regenerate batches (not timed separately, but included in measurement)
82- let worker = gb. alloc_worker ( circuit. and_count ( ) ) . unwrap ( ) ;
83- let mut iter = worker. generate_batched ( circuit, & inputs) . unwrap ( ) ;
75+ let mut iter = gb. generate_batched ( circuit, delta, & inputs) . unwrap ( ) ;
8476 let batches: Vec < _ > = iter. by_ref ( ) . collect ( ) ;
8577 let _ = iter. finish ( ) . unwrap ( ) ;
8678
87- let ev_worker = ev. alloc_worker ( circuit. and_count ( ) ) . unwrap ( ) ;
88- let mut consumer = ev_worker. evaluate_batched ( circuit, & eval_inputs) . unwrap ( ) ;
79+ let mut consumer = ev. evaluate_batched ( circuit, & eval_inputs) . unwrap ( ) ;
8980 for batch in batches {
9081 consumer. next ( batch) ;
9182 }
@@ -105,7 +96,6 @@ fn bench_evaluate_parallel(c: &mut Criterion) {
10596
10697 let mut rng = StdRng :: seed_from_u64 ( 0 ) ;
10798 let delta = Delta :: random ( & mut rng) ;
108- let seed: [ u8 ; 16 ] = rng. random ( ) ;
10999
110100 // Prepare inputs
111101 let inputs: Vec < Key > = ( 0 ..256 ) . map ( |_| rng. random ( ) ) . collect ( ) ;
@@ -123,12 +113,10 @@ fn bench_evaluate_parallel(c: &mut Criterion) {
123113 let actual_gates = circuit_count as u64 * gates_per_circuit;
124114
125115 // Pre-garble circuits
126- let mut gb = Garbler :: new ( seed, delta) ;
127- let setup = gb. setup ( ) . unwrap ( ) ;
116+ let mut gb = Garbler :: default ( ) ;
128117 let garbled_circuits: Vec < GarbledCircuit > = ( 0 ..circuit_count)
129118 . map ( |_| {
130- let worker = gb. alloc_worker ( circuit. and_count ( ) ) . unwrap ( ) ;
131- let mut iter = worker. generate ( & circuit, & inputs) . unwrap ( ) ;
119+ let mut iter = gb. generate ( & circuit, delta, & inputs) . unwrap ( ) ;
132120 let gates: Vec < _ > = iter. by_ref ( ) . collect ( ) ;
133121 let _ = iter. finish ( ) . unwrap ( ) ;
134122 GarbledCircuit { gates }
@@ -139,17 +127,12 @@ fn bench_evaluate_parallel(c: &mut Criterion) {
139127
140128 // Parallel evaluation using evaluate_garbled_circuits (uses rayon par_iter)
141129 group. bench_function ( BenchmarkId :: new ( "rayon" , name) , |b| {
142- let mut ev = Evaluator :: default ( ) ;
143- ev. setup ( setup. clone ( ) ) . unwrap ( ) ;
144130 b. iter ( || {
145131 let circs: Vec < _ > = garbled_circuits
146132 . iter ( )
147133 . map ( |gc| ( circuit. clone ( ) , eval_inputs. clone ( ) , gc. clone ( ) ) )
148134 . collect ( ) ;
149- let workers: Vec < _ > = ( 0 ..circuit_count)
150- . map ( |_| ev. alloc_worker ( circuit. and_count ( ) ) . unwrap ( ) )
151- . collect ( ) ;
152- black_box ( evaluate_garbled_circuits ( circs, workers) . unwrap ( ) )
135+ black_box ( evaluate_garbled_circuits ( circs) . unwrap ( ) )
153136 } )
154137 } ) ;
155138 }
0 commit comments