mirror of
https://github.com/arnaucube/sonobe-playground.git
synced 2026-01-14 01:51:29 +01:00
Use spans
This commit is contained in:
@@ -1,14 +1,7 @@
|
|||||||
use std::{io, time::Instant};
|
use std::io;
|
||||||
|
|
||||||
use tracing::{info, level_filters::LevelFilter};
|
use tracing::level_filters::LevelFilter;
|
||||||
use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan};
|
use tracing_subscriber::{fmt::format::FmtSpan, EnvFilter};
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_filter() -> EnvFilter {
|
fn get_filter() -> EnvFilter {
|
||||||
EnvFilter::builder()
|
EnvFilter::builder()
|
||||||
|
|||||||
19
src/main.rs
19
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<FS: FoldingSchemeExt>(
|
|||||||
// ============== 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", || {
|
let (mut folding, folding_vp) = info_span!("Prepare folding")
|
||||||
prepare_folding::<FS>(&config.circuit, start_state.clone(), rng)
|
.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<FS: FoldingSchemeExt>(
|
|||||||
|
|
||||||
// ============== FOLDING VERIFICATION =========================================================
|
// ============== FOLDING VERIFICATION =========================================================
|
||||||
|
|
||||||
measure("Folding verification", || {
|
info_span!("Folding verification").in_scope(|| {
|
||||||
verify_folding(
|
verify_folding(
|
||||||
&folding,
|
&folding,
|
||||||
folding_vp,
|
folding_vp,
|
||||||
|
|||||||
@@ -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),
|
circuit: info_span!("Prepare circuit").in_scope(create_circuit),
|
||||||
input: measure("Prepare input", prepare_input),
|
input: info_span!("Prepare input").in_scope(prepare_input),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user