mirror of
https://github.com/itzmeanjan/ml-kem.git
synced 2026-01-09 15:47:55 -05:00
don't compute min, max, mean and median exeuction time of benchmark, using multiple repeatitions
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
This commit is contained in:
5
Makefile
5
Makefile
@@ -32,7 +32,4 @@ bench/a.out: bench/main.cpp include/*.hpp include/bench/*.hpp sha3/include/*.hpp
|
||||
$(CXX) $(CXXFLAGS) $(OPTFLAGS) $(IFLAGS) $(DEP_IFLAGS) $< -lbenchmark -o $@
|
||||
|
||||
benchmark: bench/a.out
|
||||
# no repeatation, showing mean time taken
|
||||
./$< --benchmark_time_unit=us
|
||||
# N(>0) repeatations, showing only aggregates
|
||||
./$< --benchmark_time_unit=us --benchmark_repetitions=8 --benchmark_display_aggregates_only=true
|
||||
./$< --benchmark_time_unit=us --benchmark_counters_tabular=true
|
||||
|
||||
@@ -1,56 +1,21 @@
|
||||
#include "bench/bench_kem.hpp"
|
||||
|
||||
auto compute_min = [](const std::vector<double>& v) -> double {
|
||||
return *std::min_element(v.begin(), v.end());
|
||||
};
|
||||
|
||||
auto compute_max = [](const std::vector<double>& v) -> double {
|
||||
return *std::max_element(v.begin(), v.end());
|
||||
};
|
||||
|
||||
// Register for benchmarking IND-CCA2-secure Kyber Key Encapsulation Mechanism
|
||||
|
||||
// Kyber512
|
||||
BENCHMARK(bench_kyber::keygen<2, 3>)
|
||||
->Name("kyber512_keygen")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::encapsulate<2, 3, 2, 10, 4>)
|
||||
->Name("kyber512_encap")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::decapsulate<2, 3, 2, 10, 4>)
|
||||
->Name("kyber512_decap")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::keygen<2, 3>)->Name("kyber512/keygen");
|
||||
BENCHMARK(bench_kyber::encapsulate<2, 3, 2, 10, 4>)->Name("kyber512/encap");
|
||||
BENCHMARK(bench_kyber::decapsulate<2, 3, 2, 10, 4>)->Name("kyber512/decap");
|
||||
|
||||
// Kyber768
|
||||
BENCHMARK(bench_kyber::keygen<3, 2>)
|
||||
->Name("kyber768_keygen")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::encapsulate<3, 2, 2, 10, 4>)
|
||||
->Name("kyber768_encap")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::decapsulate<3, 2, 2, 10, 4>)
|
||||
->Name("kyber768_decap")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::keygen<3, 2>)->Name("kyber768/keygen");
|
||||
BENCHMARK(bench_kyber::encapsulate<3, 2, 2, 10, 4>)->Name("kyber768/encap");
|
||||
BENCHMARK(bench_kyber::decapsulate<3, 2, 2, 10, 4>)->Name("kyber768/decap");
|
||||
|
||||
// Kyber1024
|
||||
BENCHMARK(bench_kyber::keygen<4, 2>)
|
||||
->Name("kyber1024_keygen")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::encapsulate<4, 2, 2, 11, 5>)
|
||||
->Name("kyber1024_encap")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::decapsulate<4, 2, 2, 11, 5>)
|
||||
->Name("kyber1024_decap")
|
||||
->ComputeStatistics("min", compute_min)
|
||||
->ComputeStatistics("max", compute_max);
|
||||
BENCHMARK(bench_kyber::keygen<4, 2>)->Name("kyber1024/keygen");
|
||||
BENCHMARK(bench_kyber::encapsulate<4, 2, 2, 11, 5>)->Name("kyber1024/encap");
|
||||
BENCHMARK(bench_kyber::decapsulate<4, 2, 2, 11, 5>)->Name("kyber1024/decap");
|
||||
|
||||
// benchmark runner main routine
|
||||
BENCHMARK_MAIN();
|
||||
|
||||
Reference in New Issue
Block a user