1#include <benchmark/benchmark.h>
7using namespace benchmark;
21 auto log2_num_gates =
static_cast<size_t>(state.range(0));
23 const auto construct_inst = [&]() {
31 std::shared_ptr<ProverInstance> prover_inst_1 = construct_inst();
34 std::shared_ptr<ProverInstance> prover_inst_2 = construct_inst();
40 ProtogalaxyProver folding_prover(
41 { prover_inst_1, prover_inst_2 }, { verifier_inst_1, verifier_inst_2 }, transcript);
44 folding_prover.accumulator = prover_inst_1;
45 folding_prover.deltas.resize(log2_num_gates);
46 std::fill_n(folding_prover.deltas.begin(), log2_num_gates, 0);
47 folding_prover.perturbator = Flavor::Polynomial::random(1 << log2_num_gates);
48 folding_prover.transcript = Flavor::Transcript::prover_init_empty();
49 folding_prover.run_oink_prover_on_each_incomplete_instance();
51 for (
auto _ : state) {
66 prover.combiner_quotient_round(prover.accumulator->gate_challenges, prover.deltas, prover.prover_insts_to_fold);
69 prover.update_target_sum_and_fold(prover.prover_insts_to_fold,
70 prover.combiner_quotient,
72 prover.relation_parameters,
73 prover.perturbator_evaluation);
MegaCircuitBuilder CircuitBuilder
static void construct_arithmetic_circuit(Builder &builder, const size_t target_log2_dyadic_size=4, bool include_public_inputs=true)
Populate a builder with a specified number of arithmetic gates; includes a PI.
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a ...
Unit(benchmark::kMillisecond) -> RangeMultiplier(2) ->Range(2, MAX_BATCH_SIZE) ->Iterations(1000)
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
Entry point for Barretenberg command-line interface.
void _bench_round(::benchmark::State &state, void(*F)(ProtogalaxyProver_< Flavor > &))
DenseRange(MIN_LOG_NUM_GRUMPKIN_POINTS, MAX_LOG_NUM_GRUMPKIN_POINTS) -> Unit(benchmark::kMillisecond)
void bench_round_mega(::benchmark::State &state, void(*F)(ProtogalaxyProver_< MegaFlavor > &))
BENCHMARK_CAPTURE(bench_round_mega, oink, [](auto &prover) { prover.run_oink_prover_on_each_incomplete_instance();}) -> DenseRange(14, 20) -> Unit(kMillisecond)
void fold(State &state) noexcept
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept