Skip to content

Commit a607d2f

Browse files
Update benchmarks to use init build script
1 parent f966157 commit a607d2f

17 files changed

+50
-80
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// This file is automatically generated by cargo openvm. Do not rename or edit.
2+
openvm_algebra_guest::moduli_macros::moduli_init! { "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337" }
3+
openvm_ecc_guest::sw_macros::sw_init! { Secp256k1Point }

benchmarks/guest/ecrecover/src/main.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,7 @@ use revm_precompile::{
1515
utilities::right_pad, Error as PrecompileError, PrecompileOutput, PrecompileResult,
1616
};
1717

18-
openvm_algebra_guest::moduli_macros::moduli_init! {
19-
"0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F",
20-
"0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141"
21-
}
22-
openvm_ecc_guest::sw_macros::sw_init! {
23-
Secp256k1Point,
24-
}
18+
openvm::init!();
2519

2620
pub fn main() {
2721
let expected_address = read_vec();
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// This file is automatically generated by cargo openvm. Do not rename or edit.
2+
openvm_algebra_guest::moduli_macros::moduli_init! { "1000000000000000003", "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "115792089210356248762697446949407573530086143415290314195533631308867097853951", "115792089210356248762697446949407573529996955224135760342422259061068512044369", "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617", "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", "52435875175126190479447740508185965837690552500527637822603658699938581184513", "2305843009213693951", "7" }
3+
openvm_algebra_guest::complex_macros::complex_init! { Bn254Fp2 { mod_idx = 5 }, Bls12_381Fp2 { mod_idx = 7 } }
4+
openvm_ecc_guest::sw_macros::sw_init! { Secp256k1Point, P256Point, Bn254G1Affine, Bls12_381G1Affine }

benchmarks/guest/kitchen-sink/src/main.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,7 @@ openvm_algebra_guest::moduli_macros::moduli_declare! {
2929
Mersenne61 { modulus = "0x1fffffffffffffff" },
3030
}
3131

32-
openvm_algebra_guest::moduli_macros::moduli_init! {
33-
"1000000000000000003", // Mod1e18
34-
"0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F", // secp256k1 Coordinate field
35-
"0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141", // secp256k1 Scalar field
36-
"0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff", // secp256r1=p256 Coordinate field
37-
"0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551", // secp256r1=p256 Scalar field
38-
"0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47", // Bn254Fp Coordinate field
39-
"0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001", // Bn254 Scalar
40-
"0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab", // BLS12-381 Coordinate field
41-
"0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", // BLS12-381 Scalar field
42-
"0x1fffffffffffffff",
43-
"7",
44-
}
45-
46-
openvm_ecc_guest::sw_macros::sw_init! {
47-
Secp256k1Point, P256Point,
48-
Bn254G1Affine, Bls12_381G1Affine
49-
}
50-
51-
openvm_algebra_guest::complex_macros::complex_init! {
52-
Bn254Fp2 { mod_idx = 5 },
53-
Bls12_381Fp2 { mod_idx = 7 },
54-
}
32+
openvm::init!();
5533

5634
fn materialize_modular_chip<T: IntMod>() {
5735
// hopefully the compiler doesn't optimize out the operations
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// This file is automatically generated by cargo openvm. Do not rename or edit.
2+
openvm_algebra_guest::moduli_macros::moduli_init! { "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617" }
3+
openvm_algebra_guest::complex_macros::complex_init! { Bn254Fp2 { mod_idx = 0 } }
4+
openvm_ecc_guest::sw_macros::sw_init! { Bn254G1Affine }

benchmarks/guest/pairing/src/main.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,7 @@ use {
66
openvm_pairing_guest::pairing::PairingCheck,
77
};
88

9-
openvm_algebra_guest::moduli_macros::moduli_init! {
10-
"0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47", // Bn254Fp Coordinate field
11-
"0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001", // Bn254 Scalar
12-
}
13-
14-
openvm_ecc_guest::sw_macros::sw_init! {
15-
Bn254G1Affine
16-
}
17-
18-
openvm_algebra_guest::complex_macros::complex_init! {
19-
Bn254Fp2 { mod_idx = 0 },
20-
}
9+
openvm::init!();
2110

2211
const PAIR_ELEMENT_LEN: usize = 32 * (2 + 4); // 1 G1Affine (2 Fp), 1 G2Affine (4 Fp)
2312

benchmarks/prove/src/bin/base64_json.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ use openvm_transpiler::{transpiler::Transpiler, FromElf};
1414
fn main() -> Result<()> {
1515
let args = BenchmarkCli::parse();
1616

17-
let elf = args.build_bench_program("base64_json")?;
17+
let config = Keccak256Rv32Config::default();
18+
let elf = args.build_bench_program("base64_json", &config, None)?;
1819
let exe = VmExe::from_elf(
1920
elf,
2021
Transpiler::<BabyBear>::default()
@@ -28,11 +29,6 @@ fn main() -> Result<()> {
2829
let data = include_str!("../../../guest/base64_json/json_payload_encoded.txt");
2930

3031
let fe_bytes = data.to_owned().into_bytes();
31-
args.bench_from_exe(
32-
"base64_json",
33-
Keccak256Rv32Config::default(),
34-
exe,
35-
StdIn::from_bytes(&fe_bytes),
36-
)
32+
args.bench_from_exe("base64_json", config, exe, StdIn::from_bytes(&fe_bytes))
3733
})
3834
}

benchmarks/prove/src/bin/bincode.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ use openvm_transpiler::{transpiler::Transpiler, FromElf};
1313
fn main() -> Result<()> {
1414
let args = BenchmarkCli::parse();
1515

16-
let elf = args.build_bench_program("bincode")?;
16+
let config = Rv32ImConfig::default();
17+
let elf = args.build_bench_program("bincode", &config, None)?;
1718
let exe = VmExe::from_elf(
1819
elf,
1920
Transpiler::<BabyBear>::default()
@@ -24,6 +25,6 @@ fn main() -> Result<()> {
2425
run_with_metric_collection("OUTPUT_PATH", || -> Result<()> {
2526
let file_data = include_bytes!("../../../guest/bincode/minecraft_savedata.bin");
2627
let stdin = StdIn::from_bytes(file_data);
27-
args.bench_from_exe("bincode", Rv32ImConfig::default(), exe, stdin)
28+
args.bench_from_exe("bincode", config, exe, stdin)
2829
})
2930
}

benchmarks/prove/src/bin/ecrecover.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ impl Rv32ImEcRecoverConfig {
9797
fn main() -> Result<()> {
9898
let args = BenchmarkCli::parse();
9999

100-
let elf = args.build_bench_program("ecrecover")?;
100+
let config = Rv32ImEcRecoverConfig::for_curves(vec![SECP256K1_CONFIG.clone()]);
101+
102+
let elf = args.build_bench_program("ecrecover", &config, None)?;
101103
let exe = VmExe::from_elf(
102104
elf,
103105
Transpiler::<BabyBear>::default()
@@ -133,11 +135,6 @@ fn main() -> Result<()> {
133135
.map(|s| make_input(&signing_key, s.as_bytes()))
134136
.collect::<Vec<_>>(),
135137
);
136-
args.bench_from_exe(
137-
"ecrecover_program",
138-
Rv32ImEcRecoverConfig::for_curves(vec![SECP256K1_CONFIG.clone()]),
139-
exe,
140-
input_stream.into(),
141-
)
138+
args.bench_from_exe("ecrecover_program", config, exe, input_stream.into())
142139
})
143140
}

benchmarks/prove/src/bin/fib_e2e.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ async fn main() -> Result<()> {
3030
NUM_PUBLIC_VALUES,
3131
max_segment_length,
3232
));
33+
let elf = args.build_bench_program("fibonacci", &app_config.app_vm_config, None)?;
34+
3335
let agg_config = args.agg_config();
3436

3537
let sdk = Sdk::new();
@@ -44,7 +46,6 @@ async fn main() -> Result<()> {
4446
&halo2_params_reader,
4547
&DefaultStaticVerifierPvHandler,
4648
)?;
47-
let elf = args.build_bench_program("fibonacci")?;
4849
let exe = VmExe::from_elf(
4950
elf,
5051
Transpiler::default()

benchmarks/prove/src/bin/fibonacci.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ use openvm_transpiler::{transpiler::Transpiler, FromElf};
1313
fn main() -> Result<()> {
1414
let args = BenchmarkCli::parse();
1515

16-
let elf = args.build_bench_program("fibonacci")?;
16+
let config = Rv32ImConfig::default();
17+
let elf = args.build_bench_program("fibonacci", &config, None)?;
1718
let exe = VmExe::from_elf(
1819
elf,
1920
Transpiler::<BabyBear>::default()
@@ -26,6 +27,6 @@ fn main() -> Result<()> {
2627
let n = 100_000u64;
2728
let mut stdin = StdIn::default();
2829
stdin.write(&n);
29-
args.bench_from_exe("fibonacci_program", Rv32ImConfig::default(), exe, stdin)
30+
args.bench_from_exe("fibonacci_program", config, exe, stdin)
3031
})
3132
}

benchmarks/prove/src/bin/kitchen_sink.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ use openvm_transpiler::FromElf;
2424
fn main() -> Result<()> {
2525
let args = BenchmarkCli::parse();
2626

27-
let elf = args.build_bench_program("kitchen-sink")?;
2827
let bn_config = PairingCurve::Bn254.curve_config();
2928
let bls_config = PairingCurve::Bls12_381.curve_config();
3029
let vm_config = SdkVmConfig::builder()
@@ -69,6 +68,7 @@ fn main() -> Result<()> {
6968
PairingCurve::Bls12_381,
7069
]))
7170
.build();
71+
let elf = args.build_bench_program("kitchen-sink", &vm_config, None)?;
7272
let exe = VmExe::from_elf(elf, vm_config.transpiler())?;
7373

7474
let sdk = Sdk::new();

benchmarks/prove/src/bin/pairing.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ use openvm_stark_sdk::bench::run_with_metric_collection;
1212
fn main() -> Result<()> {
1313
let args = BenchmarkCli::parse();
1414

15-
let elf = args.build_bench_program("pairing")?;
1615
let vm_config = SdkVmConfig::builder()
1716
.system(SystemConfig::default().with_continuations().into())
1817
.rv32i(Default::default())
@@ -32,6 +31,7 @@ fn main() -> Result<()> {
3231
]))
3332
.pairing(PairingExtension::new(vec![PairingCurve::Bn254]))
3433
.build();
34+
let elf = args.build_bench_program("pairing", &vm_config, None)?;
3535
let sdk = Sdk::new();
3636
let exe = sdk.transpile(elf, vm_config.transpiler()).unwrap();
3737

benchmarks/prove/src/bin/regex.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ use openvm_transpiler::{transpiler::Transpiler, FromElf};
1414
fn main() -> Result<()> {
1515
let args = BenchmarkCli::parse();
1616

17-
let elf = args.build_bench_program("regex")?;
17+
let config = Keccak256Rv32Config::default();
18+
let elf = args.build_bench_program("regex", &config, None)?;
1819
let exe = VmExe::from_elf(
1920
elf.clone(),
2021
Transpiler::<BabyBear>::default()
@@ -27,11 +28,6 @@ fn main() -> Result<()> {
2728
let data = include_str!("../../../guest/regex/regex_email.txt");
2829

2930
let fe_bytes = data.to_owned().into_bytes();
30-
args.bench_from_exe(
31-
"regex_program",
32-
Keccak256Rv32Config::default(),
33-
exe,
34-
StdIn::from_bytes(&fe_bytes),
35-
)
31+
args.bench_from_exe("regex_program", config, exe, StdIn::from_bytes(&fe_bytes))
3632
})
3733
}

benchmarks/prove/src/bin/revm_transfer.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ use openvm_transpiler::{transpiler::Transpiler, FromElf};
1313

1414
fn main() -> Result<()> {
1515
let args = BenchmarkCli::parse();
16-
let elf = args.build_bench_program("revm_transfer")?;
16+
let config = Keccak256Rv32Config::default();
17+
let elf = args.build_bench_program("revm_transfer", &config, None)?;
1718
let exe = VmExe::from_elf(
1819
elf,
1920
Transpiler::<BabyBear>::default()
@@ -23,11 +24,6 @@ fn main() -> Result<()> {
2324
.with_extension(Keccak256TranspilerExtension),
2425
)?;
2526
run_with_metric_collection("OUTPUT_PATH", || -> Result<()> {
26-
args.bench_from_exe(
27-
"revm_100_transfers",
28-
Keccak256Rv32Config::default(),
29-
exe,
30-
StdIn::default(),
31-
)
27+
args.bench_from_exe("revm_100_transfers", config, exe, StdIn::default())
3228
})
3329
}

benchmarks/prove/src/bin/rkyv.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ use openvm_transpiler::{transpiler::Transpiler, FromElf};
1313
fn main() -> Result<()> {
1414
let args = BenchmarkCli::parse();
1515

16-
let elf = args.build_bench_program("rkyv")?;
16+
let config = Rv32ImConfig::default();
17+
let elf = args.build_bench_program("rkyv", &config, None)?;
1718
let exe = VmExe::from_elf(
1819
elf,
1920
Transpiler::<BabyBear>::default()
@@ -25,6 +26,6 @@ fn main() -> Result<()> {
2526
run_with_metric_collection("OUTPUT_PATH", || -> Result<()> {
2627
let file_data = include_bytes!("../../../guest/rkyv/minecraft_savedata.bin");
2728
let stdin = StdIn::from_bytes(file_data);
28-
args.bench_from_exe("rkyv", Rv32ImConfig::default(), exe, stdin)
29+
args.bench_from_exe("rkyv", config, exe, stdin)
2930
})
3031
}

benchmarks/prove/src/util.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,23 @@ impl BenchmarkCli {
136136
}
137137
}
138138

139-
pub fn build_bench_program(&self, program_name: &str) -> Result<Elf> {
139+
pub fn build_bench_program<VC>(
140+
&self,
141+
program_name: &str,
142+
vm_config: &VC,
143+
init_file_name: Option<&str>,
144+
) -> Result<Elf>
145+
where
146+
VC: VmConfig<F>,
147+
{
140148
let profile = if self.profiling {
141149
"profiling"
142150
} else {
143151
"release"
144152
}
145153
.to_string();
146154
let manifest_dir = get_programs_dir().join(program_name);
155+
vm_config.write_to_init_file(&manifest_dir, init_file_name)?;
147156
build_elf(&manifest_dir, profile)
148157
}
149158

0 commit comments

Comments
 (0)