@@ -10,13 +10,13 @@ pub const CIRCUIT_SUB_PATH: &str = "hash/sha256-provekit";
10
10
11
11
/// Provekit benchmark harness for SHA256.
12
12
pub struct ProvekitSha256Benchmark {
13
- proof_schemes : HashMap < usize , NoirProofScheme > ,
14
- toml_paths : HashMap < usize , PathBuf > ,
13
+ proof_schemes : HashMap < u32 , NoirProofScheme > ,
14
+ toml_paths : HashMap < u32 , PathBuf > ,
15
15
}
16
16
17
17
impl ProvekitSha256Benchmark {
18
18
/// Compiles the circuits and creates a new benchmark harness.
19
- pub fn new ( input_sizes : & [ usize ] ) -> Self {
19
+ pub fn new ( exponents : & [ u32 ] ) -> Self {
20
20
let output = Command :: new ( "nargo" )
21
21
. args ( [
22
22
"compile" ,
@@ -40,17 +40,18 @@ impl ProvekitSha256Benchmark {
40
40
let mut proof_schemes = HashMap :: new ( ) ;
41
41
let mut toml_paths = HashMap :: new ( ) ;
42
42
43
- for & size in input_sizes {
44
- let package_name = format ! ( "sha256_bench_{size}" ) ;
43
+ for & exp in exponents {
44
+ let size = 1usize << exp;
45
+ let package_name = format ! ( "sha256_bench_2e{exp}" ) ;
45
46
let circuit_path = workspace_path
46
47
. join ( "target" )
47
48
. join ( format ! ( "{package_name}.json" ) ) ;
48
49
49
50
let proof_scheme = NoirProofScheme :: from_file ( circuit_path. to_str ( ) . unwrap ( ) )
50
- . unwrap_or_else ( |e| panic ! ( "Failed to load proof scheme for size {size }: {e}" ) ) ;
51
- proof_schemes. insert ( size , proof_scheme) ;
51
+ . unwrap_or_else ( |e| panic ! ( "Failed to load proof scheme for exp {exp }: {e}" ) ) ;
52
+ proof_schemes. insert ( exp , proof_scheme) ;
52
53
53
- let dir_name = format ! ( "sha256-bench-{size }" ) ;
54
+ let dir_name = format ! ( "sha256-bench-2e{exp }" ) ;
54
55
let circuit_member_dir = workspace_path. join ( CIRCUIT_SUB_PATH ) . join ( dir_name) ;
55
56
fs:: create_dir_all ( & circuit_member_dir) . expect ( "Failed to create circuit dir" ) ;
56
57
@@ -66,7 +67,7 @@ impl ProvekitSha256Benchmark {
66
67
67
68
let toml_path = circuit_member_dir. join ( "Prover.toml" ) ;
68
69
fs:: write ( & toml_path, toml_content) . expect ( "Failed to write Prover.toml" ) ;
69
- toml_paths. insert ( size , toml_path) ;
70
+ toml_paths. insert ( exp , toml_path) ;
70
71
}
71
72
72
73
Self {
@@ -76,9 +77,9 @@ impl ProvekitSha256Benchmark {
76
77
}
77
78
78
79
/// Runs the proving algorithm.
79
- pub fn run_prove ( & self , input_size : usize ) -> NoirProof {
80
- let proof_scheme = self . proof_schemes . get ( & input_size ) . unwrap ( ) ;
81
- let toml_path = self . toml_paths . get ( & input_size ) . unwrap ( ) ;
80
+ pub fn run_prove ( & self , input_exp : u32 ) -> NoirProof {
81
+ let proof_scheme = self . proof_schemes . get ( & input_exp ) . unwrap ( ) ;
82
+ let toml_path = self . toml_paths . get ( & input_exp ) . unwrap ( ) ;
82
83
let witness_map = proof_scheme
83
84
. read_witness ( toml_path. to_str ( ) . unwrap ( ) )
84
85
. expect ( "Failed to read witness" ) ;
@@ -89,9 +90,9 @@ impl ProvekitSha256Benchmark {
89
90
}
90
91
91
92
/// Prepares inputs for verification.
92
- pub fn prepare_verify ( & self , input_size : usize ) -> ( NoirProof , & NoirProofScheme ) {
93
- let proof_scheme = self . proof_schemes . get ( & input_size ) . unwrap ( ) ;
94
- let proof = self . run_prove ( input_size ) ;
93
+ pub fn prepare_verify ( & self , input_exp : u32 ) -> ( NoirProof , & NoirProofScheme ) {
94
+ let proof_scheme = self . proof_schemes . get ( & input_exp ) . unwrap ( ) ;
95
+ let proof = self . run_prove ( input_exp ) ;
95
96
( proof, proof_scheme)
96
97
}
97
98
0 commit comments