fix(v2): get benchmarks crates to compile#2618
fix(v2): get benchmarks crates to compile#2618shuklaayush merged 6 commits intodevelop-v2.0.0-betafrom
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
0a4e30b to
15cc030
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
e395b98 to
57a96d3
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
57a96d3 to
ca22164
Compare
|
Claude finished @shuklaayush's task in 1m 53s —— View job Code Review: fix(v2): get benchmarks crates to compile
Great cleanup — net ~1000 lines removed. Removes all stale Most prior review items have been addressed (unused Issues1. This clap attribute allows unknown positional subcommands but does not silently ignore unknown 2.
Minor Nits3. pub const DEFAULT_MAX_SEGMENT: u32 = 1 << 20; // 2^20
pub const DEFAULT_LOG_STACKED_HEIGHT: usize = 21; // 2^21The factor-of-2 gap between these related constants isn't explained. A brief comment (e.g., "stacked height is one log-step above max segment height to account for padding") would help future readers avoid accidentally changing one without the other. 4. Confirmed: Looks Good
|
This comment has been minimized.
This comment has been minimized.
stephenh-axiom-xyz
left a comment
There was a problem hiding this comment.
LGTM with some nits
|
Claude finished @shuklaayush's task in 1m 31s —— View job
Code Review: fix(v2): get benchmarks crates to compileClean, well-structured PR. Net ~1000 lines removed, stale native-circuit dependencies properly excised, and the new Issues1. Agree with the previous review. Now that 2. The PR description says "Removed 3. Field is parsed but never read by Nits4. pub const DEFAULT_MAX_SEGMENT: u32 = 1 << 20; // 2^20
pub const DEFAULT_LOG_STACKED_HEIGHT: usize = 21; // log2(2^21)The factor-of-2 gap is not explained. A comment like 5. Re: @stephenh-axiom-xyz's question about 6. Binary pattern is clean and consistent All prove binaries follow the same pattern: Looks Good
|
Note: cells_used metrics omitted because CUDA tracegen does not expose unpadded trace heights. Commit: 12cffe8 |
Summary
Removes all
openvm-native-circuit,openvm-native-recursion, andopenvm-native-compilerdependencies from the three benchmark crates, which no longer exist in the workspace.Changes by crate
benchmarks/utilssrc/generate-fixtures.rs— depended onopenvm-native-circuit,openvm-native-recursion,openvm-sdkopenvm-circuit,openvm-continuations,openvm-native-circuit,openvm-native-recursion,openvm-sdk,openvm-stark-sdk,bitcode,serde). Removedgenerate-fixturesfeature and its[[bin]]entry. Setdefault = [].src/lib.rsunchanged — ELF building utilities remain intact.benchmarks/executesrc/execute-verifier.rs— the entire binary usedNativeCpuBuilderandNATIVE_MAX_TRACE_HEIGHTSfrom native-circuit.src/lib.rs— was a placeholder; the crate is bench-only.openvm-continuationsandopenvm-sdkdeps (only used by verifier code).[[bin]]forexecute-verifierand theevm-provefeature.tcoandaotfeatures to propagate to all extension circuit crates directly (previously went throughopenvm-sdk).openvm-circuitwithtest-utilsto dev-dependencies (forSystemParams::new_for_testing).benches/execute.rs:benchmark_leaf_verifier_*,benchmark_internal_verifier_*) and their setup functions (setup_leaf_verifier,setup_internal_verifier).#[cfg(feature = "aot")]branches andcreate_aot_instance/create_metered_aot_instancefunctions — kept only the interpreter-based execution paths.BabyBearPoseidon2Engine→BabyBearPoseidon2CpuEngine,FriParameters::standard_fast()→SystemParams::new_for_testing(21).fs,Arc,ContinuationVmProof,Proof,NativeCpuBuilder, etc.benchmark_execute,benchmark_execute_metered,benchmark_execute_metered_cost) remain unchanged.benchmarks/proveMajor restructuring to match the v2-proof-system reference pattern.
src/lib.rsrewritten (replacessrc/util.rs):BenchmarkCliwith--max-segment-lengthand--app-onlyflags.BenchmarkCli::run()dispatches torun_default_benchmark(full aggregation) orrun_default_app_benchmark(app-only).BenchmarkCli::apply_config()helper for shared segmentation logic.run_benchmark()— full aggregation withSdk::prove(), proof size metrics (total + zstd-compressed), and verification viaverify_vm_stark_proof_decoded.run_app_benchmark()— app-only proof withverify_app_proof.Deleted
src/util.rs— consolidated intolib.rs.Bins rewritten to use pre-compiled ELFs via
include_bytes!instead of runtimebuild_bench_program():fibonacci.rs— loads ELF fromguest/fibonacci/elf/, n=800k.pairing.rs— BN254 pairing check.ecrecover.rs— ECDSA secp256k1 recovery (5 signatures).regex.rs— email regex matching withregex_email.txtfixture.base64_json.rs,bincode.rs,rkyv.rs,revm_transfer.rs— serialization/EVM benchmarks.New bins:
keccak.rs— keccak256 iteration benchmark (4096 iterations), builder-constructed config.keccak_par.rs— parallel keccak proving with--concurrencyflag, sharedapp_pk/app_vkacross threads.kitchen_sink.rs— restored (previously deleted due to native-circuit deps), now loads pre-compiled ELF.Deleted bins:
fib_e2e.rs— replaced byfibonacci.rs(use--app-onlyfor app-only mode).verify_fibair.rs— depended onopenvm-native-circuitandopenvm-native-recursion.async_regex.rs—AsyncAppProverno longer exists in the SDK.Cargo.toml:
openvm-sdk-config,openvm-verify-stark-host,zstd,p3-field.tokio,derive_more,rand.openvm-stark-backend/parallelandopenvm-stark-backend/jemalloctoparallel/jemallocfeatures.asyncfeature.