Browse Source

Use spans

main
Piotr Mikołajczyk 6 months ago
parent
commit
e12c36f587
No known key found for this signature in database GPG Key ID: 7ADA31326DE28EC7
3 changed files with 15 additions and 23 deletions
  1. +3
    -10
      src/logging.rs
  2. +9
    -10
      src/main.rs
  3. +3
    -3
      src/scenario_config.rs

+ 3
- 10
src/logging.rs

@ -1,14 +1,7 @@
use std::{io, time::Instant};
use std::io;
use tracing::{info, level_filters::LevelFilter};
use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan};
pub fn measure<T, Action: FnOnce() -> T>(action_name: &str, action: Action) -> T {
let start = Instant::now();
let result = action();
info!("{action_name}: {:?}", start.elapsed());
result
}
use tracing::level_filters::LevelFilter;
use tracing_subscriber::{fmt::format::FmtSpan, EnvFilter};
fn get_filter() -> EnvFilter { fn get_filter() -> EnvFilter {
EnvFilter::builder() EnvFilter::builder()

+ 9
- 10
src/main.rs

@ -1,10 +1,10 @@
use scenario_config::ScenarioConfig; use scenario_config::ScenarioConfig;
use tracing::info_span;
use crate::{ use crate::{
folding::{prepare_folding, verify_folding, FoldingSchemeExt, HyperNovaFolding, NovaFolding}, folding::{prepare_folding, verify_folding, FoldingSchemeExt, HyperNovaFolding, NovaFolding},
logging::init_logging,
logging::{init_logging},
}; };
use crate::logging::measure;
mod circuit; mod circuit;
mod logging; mod logging;
@ -22,17 +22,16 @@ fn scenario(
// ============== FOLDING PREPARATION ========================================================== // ============== FOLDING PREPARATION ==========================================================
let start_state = config.start_ivc_state.clone(); let start_state = config.start_ivc_state.clone();
let (mut folding, folding_vp) = measure("Prepare folding", || {
prepare_folding::<FS>(&config.circuit, start_state.clone(), rng)
});
let (mut folding, folding_vp) = info_span!("Prepare folding")
.in_scope(|| prepare_folding::<FS>(&config.circuit, start_state.clone(), rng));
let input = info_span!("Transform input")
.in_scope(|| folding.transform_inputs(config.input().to_vec(), start_state, &mut *rng));
// ============== FOLDING ====================================================================== // ============== FOLDING ======================================================================
let input = measure("Transform input", || {
folding.transform_inputs(config.input().to_vec(), start_state.clone(), &mut *rng)
});
for (i, step_input) in input.into_iter().enumerate() { for (i, step_input) in input.into_iter().enumerate() {
measure(&format!("Prove_step {i}"), || {
info_span!("Folding step", step = i).in_scope(|| {
folding folding
.prove_step( .prove_step(
&mut *rng, &mut *rng,
@ -45,7 +44,7 @@ fn scenario(
// ============== FOLDING VERIFICATION ========================================================= // ============== FOLDING VERIFICATION =========================================================
measure("Folding verification", || {
info_span!("Folding verification").in_scope(|| {
verify_folding( verify_folding(
&folding, &folding,
folding_vp, folding_vp,

+ 3
- 3
src/scenario_config.rs

@ -1,9 +1,9 @@
use ark_bn254::Fr; use ark_bn254::Fr;
use num_traits::Zero; use num_traits::Zero;
use sonobe::frontend::circom::CircomFCircuit; use sonobe::frontend::circom::CircomFCircuit;
use tracing::info_span;
use crate::{circuit::create_circuit, input::prepare_input}; use crate::{circuit::create_circuit, input::prepare_input};
use crate::logging::measure;
#[derive(Clone)] #[derive(Clone)]
pub struct ScenarioConfig { pub struct ScenarioConfig {
@ -18,8 +18,8 @@ impl ScenarioConfig {
Self { Self {
num_inputs: 6, num_inputs: 6,
start_ivc_state: vec![Fr::zero(); 2], start_ivc_state: vec![Fr::zero(); 2],
circuit: measure("Prepare circuit", create_circuit),
input: measure("Prepare input", prepare_input),
circuit: info_span!("Prepare circuit").in_scope(create_circuit),
input: info_span!("Prepare input").in_scope(prepare_input),
} }
} }

Loading…
Cancel
Save