|
|
@@ -6,6 +6,11 @@ |
|
|
|
#include <benchmark/benchmark.h> |
|
|
|
#include <benchmark/../../src/statistics.h> |
|
|
|
#include <benchmark/../../src/cycleclock.h> |
|
|
|
#include "kem/kyber/kyber512/avx2/polyvec.h" |
|
|
|
|
|
|
|
extern "C" { |
|
|
|
#include "kem/kyber/kyber512/avx2/indcpa.h" |
|
|
|
} |
|
|
|
|
|
|
|
auto cpucycle = [](benchmark::State &st, int64_t cycles) { |
|
|
|
st.counters["CPU cycles: mean"] = benchmark::Counter( |
|
|
@@ -14,9 +19,13 @@ auto cpucycle = [](benchmark::State &st, int64_t cycles) { |
|
|
|
|
|
|
|
static void BenchKyberMatK2(benchmark::State &st) { |
|
|
|
int64_t t, total = 0; |
|
|
|
polyvec a[KYBER_K]; |
|
|
|
uint8_t seed[32]; |
|
|
|
for (auto _ : st) { |
|
|
|
t = benchmark::cycleclock::Now(); |
|
|
|
PQCLEAN_KYBER512_AVX2_gen_matrix(a, seed, 0); |
|
|
|
total += benchmark::cycleclock::Now() - t; |
|
|
|
benchmark::DoNotOptimize(a); |
|
|
|
} |
|
|
|
cpucycle(st, total); |
|
|
|
} |
|
|
|