Browse Source

Insights into input trans

main
Piotr Mikołajczyk 6 months ago
parent
commit
e757615571
No known key found for this signature in database GPG Key ID: 7ADA31326DE28EC7
3 changed files with 22 additions and 10 deletions
  1. +14
    -7
      analysis.py
  2. +7
    -2
      src/folding.rs
  3. +1
    -1
      src/scenario_config.rs

+ 14
- 7
analysis.py

@ -46,12 +46,15 @@ def process_logline(log):
"Prepare folding": 0, "Prepare folding": 0,
"Transform input": 0, "Transform input": 0,
"Folding verification": 0, "Folding verification": 0,
"Folding steps": []
"Proving": [],
"Input prep": [],
} }
span_name = span.get("name") span_name = span.get("name")
if span_name == "Folding step":
scenarios[scenario_name]["Folding steps"].append(time_seconds)
if span_name == "Proving":
scenarios[scenario_name]["Proving"].append(time_seconds)
elif span_name == "Input prep":
scenarios[scenario_name]["Input prep"].append(time_seconds)
else: else:
scenarios[scenario_name][span_name] = time_seconds scenarios[scenario_name][span_name] = time_seconds
@ -74,11 +77,15 @@ def print_results():
print(report(" Transform input", data["Transform input"])) print(report(" Transform input", data["Transform input"]))
print(report(" Folding verification", data["Folding verification"])) print(report(" Folding verification", data["Folding verification"]))
folding_steps = data["Folding steps"]
print(f" Folding Steps:") print(f" Folding Steps:")
print(report(" Average", sum(folding_steps) / len(folding_steps)))
print(report(" Min", min(folding_steps)))
print(report(" Max", max(folding_steps)))
input_trans = data["Input prep"]
print(report(" Input prep: Average", sum(input_trans) / len(input_trans)))
print(report(" Input prep: Min", min(input_trans)))
print(report(" Input prep: Max", max(input_trans)))
proving_steps = data["Proving"]
print(report(" Proving: Average", sum(proving_steps) / len(proving_steps)))
print(report(" Proving: Min", min(proving_steps)))
print(report(" Proving: Max", max(proving_steps)))
process_logs('out.log') process_logs('out.log')

+ 7
- 2
src/folding.rs

@ -8,6 +8,7 @@ use sonobe::{
transcript::poseidon::poseidon_canonical_config, transcript::poseidon::poseidon_canonical_config,
Error, FoldingScheme, MultiFolding, Error, FoldingScheme, MultiFolding,
}; };
use tracing::info_span;
pub type NovaFolding = pub type NovaFolding =
Nova<G1, GVar, G2, GVar2, CircomFCircuit<Fr>, KZG<'static, Bn254>, Pedersen<G2>, false>; Nova<G1, GVar, G2, GVar2, CircomFCircuit<Fr>, KZG<'static, Bn254>, Pedersen<G2>, false>;
@ -55,8 +56,12 @@ pub trait FoldingSchemeExt: FoldingScheme> {
initial_state: Vec<Fr>, initial_state: Vec<Fr>,
rng: &mut impl rand::RngCore, rng: &mut impl rand::RngCore,
) -> Result<(), Error> { ) -> Result<(), Error> {
let step_input = self.transform_multi_input(multi_input, initial_state, rng);
self.prove_step(rng, step_input.external_inputs, step_input.other_instances)
let step_input = info_span!("Input prep")
.in_scope(|| self.transform_multi_input(multi_input, initial_state, rng));
info_span!("Proving").in_scope(|| {
self.prove_step(rng, step_input.external_inputs, step_input.other_instances)
})
} }
} }

+ 1
- 1
src/scenario_config.rs

@ -16,7 +16,7 @@ pub struct ScenarioConfig {
impl ScenarioConfig { impl ScenarioConfig {
pub fn new() -> Self { pub fn new() -> Self {
Self { Self {
num_inputs: 30,
num_inputs: 6,
start_ivc_state: vec![Fr::zero(); 2], start_ivc_state: vec![Fr::zero(); 2],
circuit: info_span!("Prepare circuit").in_scope(create_circuit), circuit: info_span!("Prepare circuit").in_scope(create_circuit),
input: info_span!("Prepare input").in_scope(prepare_input), input: info_span!("Prepare input").in_scope(prepare_input),

Loading…
Cancel
Save