Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
mega_honk.bench.cpp
Go to the documentation of this file.
1#include <benchmark/benchmark.h>
2
5
6using namespace benchmark;
7using namespace bb;
8
12static void construct_proof_megahonk(State& state, void (*test_circuit_function)(MegaCircuitBuilder&, size_t)) noexcept
13{
14 size_t num_iterations = 10; // 10x the circuit
15 bb::mock_circuits::construct_proof_with_specified_num_iterations<MegaProver>(
16 state, test_circuit_function, num_iterations);
17}
18
22static void construct_proof_megahonk_power_of_2(State& state) noexcept
23{
24 auto log2_of_gates = static_cast<size_t>(state.range(0));
25 bb::mock_circuits::construct_proof_with_specified_num_iterations<MegaProver>(
26 state, &bb::mock_circuits::generate_basic_arithmetic_circuit<MegaCircuitBuilder>, log2_of_gates);
27}
28
29static void get_row_power_of_2(State& state) noexcept
30{
31 auto log2_of_gates = static_cast<size_t>(state.range(0));
32 size_t gates = 1 << log2_of_gates;
33 MegaFlavor::ProverPolynomials polynomials{ gates };
34 for (auto _ : state) {
35 for (size_t i = 0; i < gates; i++) {
36 benchmark::DoNotOptimize(polynomials.get_row(i));
37 }
38 }
39}
40
41// Define benchmarks
42
43// This exists due to an issue where get_row was blowing up in time
44BENCHMARK_CAPTURE(construct_proof_megahonk, sha256, &generate_sha256_test_circuit<MegaCircuitBuilder>)
45 ->Unit(kMillisecond);
46BENCHMARK_CAPTURE(construct_proof_megahonk, keccak, &stdlib::generate_keccak_test_circuit<MegaCircuitBuilder>)
47 ->Unit(kMillisecond);
48BENCHMARK_CAPTURE(construct_proof_megahonk,
49 ecdsa_verification,
50 &stdlib::generate_ecdsa_verification_test_circuit<MegaCircuitBuilder>)
51 ->Unit(kMillisecond);
52
53BENCHMARK(get_row_power_of_2)
54 // 2**15 gates to 2**20 gates
55 ->DenseRange(15, 20)
56 ->Unit(kMillisecond);
57
58BENCHMARK(construct_proof_megahonk_power_of_2)
59 // 2**15 gates to 2**20 gates
60 ->DenseRange(15, 20)
61 ->Unit(kMillisecond);
62
A container for the prover polynomials handles.
BENCHMARK_MAIN()
Entry point for Barretenberg command-line interface.
BENCHMARK_CAPTURE(bench_round_mega, oink, [](auto &prover) { prover.run_oink_prover_on_each_incomplete_key();}) -> DenseRange(14, 20) -> Unit(kMillisecond)
BENCHMARK(vector_of_evaluations) -> DenseRange(15, 21) ->Unit(kMillisecond) ->Iterations(1)
KeccakF1600 keccak