6#include <benchmark/benchmark.h>
13using namespace benchmark;
21class ChonkBench :
public benchmark::Fixture {
24 static constexpr size_t NUM_ITERATIONS_MEDIUM_COMPLEXITY = 5;
26 void SetUp([[maybe_unused]] const ::benchmark::State& state)
override
35BENCHMARK_DEFINE_F(ChonkBench, VerificationOnly)(benchmark::State& state)
37 size_t NUM_APP_CIRCUITS = 1;
41 for (
auto _ : state) {
43 benchmark::DoNotOptimize(verifier.verify(proof));
50BENCHMARK_DEFINE_F(ChonkBench, Full)(benchmark::State& state)
52 size_t NUM_APP_CIRCUITS =
static_cast<size_t>(state.range(0));
55 for (
auto _ : state) {
61#define ARGS Arg(ChonkBench::NUM_ITERATIONS_MEDIUM_COMPLEXITY)->Arg(2)
63BENCHMARK_REGISTER_F(ChonkBench, Full)->Unit(benchmark::kMillisecond)->ARGS;
64BENCHMARK_REGISTER_F(ChonkBench, VerificationOnly)->Unit(benchmark::kMillisecond);
Verifier for Chonk IVC proofs (both native and recursive).
#define GOOGLE_BB_BENCH_REPORTER(state)
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
Entry point for Barretenberg command-line interface.
std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > accumulate_and_prove_with_precomputed_vks(size_t num_app_circuits, auto &precomputed_vks, const bool large_first_app=true)
Perform a specified number of circuit accumulation rounds.
std::vector< std::shared_ptr< typename MegaFlavor::VerificationKey > > precompute_vks(const size_t num_app_circuits, const bool large_first_app=true)