1#include <benchmark/benchmark.h>
7using namespace benchmark;
13static void construct_proof_ultrahonk(State& state,
16 size_t num_iterations = 10;
17 bb::mock_circuits::construct_proof_with_specified_num_iterations<UltraProver>(
18 state, test_circuit_function, num_iterations);
24static void construct_proof_ultrahonk_power_of_2(State& state)
noexcept
26 auto log2_of_gates =
static_cast<size_t>(state.range(0));
27 bb::mock_circuits::construct_proof_with_specified_num_iterations<UltraProver>(
28 state, &bb::mock_circuits::generate_basic_arithmetic_circuit<UltraCircuitBuilder>, log2_of_gates);
34static void construct_proof_ultrahonk_zk_power_of_2(State& state)
noexcept
36 auto log2_of_gates =
static_cast<size_t>(state.range(0));
37 bb::mock_circuits::construct_proof_with_specified_num_iterations<UltraZKProver>(
38 state, &bb::mock_circuits::generate_basic_arithmetic_circuit<UltraCircuitBuilder>, log2_of_gates);
45static void construct_proof_ultrahonk_1M_gates_dyadic_2_20(State& state)
noexcept
48 size_t num_gates = (1 << 20) - 1000;
52 bb::mock_circuits::generate_basic_arithmetic_circuit_with_target_gates<UltraCircuitBuilder>(
builder, num_gates);
54 size_t dyadic_size =
instance->dyadic_size();
55 info(
"construct_proof_ultrahonk_1M_gates_dyadic_2_20: requested=",
62 bb::mock_circuits::construct_proof_with_specified_num_iterations<UltraProver>(
63 state, &bb::mock_circuits::generate_basic_arithmetic_circuit_with_target_gates<UltraCircuitBuilder>, num_gates);
70static void construct_proof_ultrahonk_1M_gates_dyadic_2_21(State& state)
noexcept
73 size_t num_gates = (1 << 20) + 1000;
77 bb::mock_circuits::generate_basic_arithmetic_circuit_with_target_gates<UltraCircuitBuilder>(
builder, num_gates);
79 size_t dyadic_size =
instance->dyadic_size();
80 info(
"construct_proof_ultrahonk_1M_gates_dyadic_2_21: requested=",
87 bb::mock_circuits::construct_proof_with_specified_num_iterations<UltraProver>(
88 state, &bb::mock_circuits::generate_basic_arithmetic_circuit_with_target_gates<UltraCircuitBuilder>, num_gates);
92BENCHMARK_CAPTURE(construct_proof_ultrahonk, sha256, &generate_sha256_test_circuit<UltraCircuitBuilder>)
96 &stdlib::generate_ecdsa_verification_test_circuit<UltraCircuitBuilder>)
99BENCHMARK(construct_proof_ultrahonk_power_of_2)
102 ->Unit(kMillisecond);
104BENCHMARK(construct_proof_ultrahonk_zk_power_of_2)
107 ->Unit(kMillisecond);
109BENCHMARK(construct_proof_ultrahonk_1M_gates_dyadic_2_20)->Unit(kMillisecond);
110BENCHMARK(construct_proof_ultrahonk_1M_gates_dyadic_2_21)->Unit(kMillisecond);
118 ::benchmark::Initialize(&argc, argv);
119 if (::benchmark::ReportUnrecognizedArguments(argc, argv))
121 ::benchmark::RunSpecifiedBenchmarks();
122 ::benchmark::Shutdown();
125 std::cout <<
"\n=== Detailed BB_BENCH Profiling Stats ===\n";
std::shared_ptr< Napi::ThreadSafeFunction > instance
GlobalBenchStatsContainer GLOBAL_BENCH_STATS
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
void print_aggregate_counts_hierarchical(std::ostream &) const
BENCHMARK_CAPTURE(construct_proof_ultrahonk, ecdsa_verification, &stdlib::generate_ecdsa_verification_test_circuit< UltraCircuitBuilder >) -> Unit(kMillisecond)
BENCHMARK(construct_proof_ultrahonk_1M_gates_dyadic_2_20) -> Unit(kMillisecond)
int main(int argc, char **argv)