Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ultra_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_ultrahonk(State& state,
13 void (*test_circuit_function)(UltraCircuitBuilder&, size_t)) noexcept
14{
15 size_t num_iterations = 10; // 10x the circuit
16 bb::mock_circuits::construct_proof_with_specified_num_iterations<UltraProver>(
17 state, test_circuit_function, num_iterations);
18}
19
23static void construct_proof_ultrahonk_power_of_2(State& state) noexcept
24{
25 auto log2_of_gates = static_cast<size_t>(state.range(0));
26 bb::mock_circuits::construct_proof_with_specified_num_iterations<UltraProver>(
27 state, &bb::mock_circuits::generate_basic_arithmetic_circuit<UltraCircuitBuilder>, log2_of_gates);
28}
29
30// Define benchmarks
31BENCHMARK_CAPTURE(construct_proof_ultrahonk, sha256, &generate_sha256_test_circuit<UltraCircuitBuilder>)
32 ->Unit(kMillisecond);
33BENCHMARK_CAPTURE(construct_proof_ultrahonk, keccak, &stdlib::generate_keccak_test_circuit<UltraCircuitBuilder>)
34 ->Unit(kMillisecond);
35BENCHMARK_CAPTURE(construct_proof_ultrahonk,
36 ecdsa_verification,
37 &stdlib::generate_ecdsa_verification_test_circuit<UltraCircuitBuilder>)
38 ->Unit(kMillisecond);
39
40BENCHMARK(construct_proof_ultrahonk_power_of_2)
41 // 2**15 gates to 2**20 gates
42 ->DenseRange(15, 20)
43 ->Unit(kMillisecond);
44
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
BENCHMARK_MAIN()