Skip to content

Commit

Permalink
Merge c2f4f3c into 782b4c6
Browse files Browse the repository at this point in the history
  • Loading branch information
rbost committed Jan 25, 2019
2 parents 782b4c6 + c2f4f3c commit da507ef
Show file tree
Hide file tree
Showing 3 changed files with 506 additions and 32 deletions.
80 changes: 73 additions & 7 deletions bench/bench_rcprf.cpp
Expand Up @@ -22,26 +22,92 @@

#include <benchmark/benchmark.h>

#include <random>

using sse::crypto::Key;
using sse::crypto::RCPrf;
using sse::crypto::RCPrfParams;

static void BM_RCPrf_eval_all_loop(benchmark::State& state)
static void BM_RCPrf_eval(benchmark::State& state)
{
uint8_t depth = state.range(0);
uint64_t max_leaf_index = RCPrfParams::max_leaf_index_generic(depth);

std::random_device rnd;
std::mt19937_64 rnd_gen(rnd());
std::uniform_int_distribution<uint64_t> unif_dist(0, max_leaf_index);

RCPrf<32> rcprf(Key<RCPrfParams::kKeySize>(), depth);

size_t i = 0;
for (auto _ : state) {
rcprf.eval(i);

i = (i + 1) % (max_leaf_index + 1);
// randomly generate a starting point
uint64_t index = unif_dist(rnd_gen);
rcprf.eval(index);
}
state.SetItemsProcessed(state.iterations());
}

BENCHMARK(BM_RCPrf_eval_all_loop)
static void BM_RCPrf_eval_range(benchmark::State& state)
{
uint8_t depth = state.range(0);
uint64_t max_leaf_index = RCPrfParams::max_leaf_index_generic(depth);

std::random_device rnd;
std::mt19937_64 rnd_gen(rnd());
std::uniform_int_distribution<uint64_t> unif_dist(
0, max_leaf_index - state.range(1));

RCPrf<32> rcprf(Key<RCPrfParams::kKeySize>(), depth);

auto callback = [](size_t, std::array<uint8_t, 32>) {};

for (auto _ : state) {
// randomly generate a starting point
uint64_t start_index = unif_dist(rnd_gen);

rcprf.eval_range(start_index, start_index + state.range(1), callback);
}
state.SetItemsProcessed(state.iterations() * state.range(1));
}

static void BM_RCPrf_eval_range_constrain(benchmark::State& state)
{
uint8_t depth = state.range(0);
uint64_t max_leaf_index = RCPrfParams::max_leaf_index_generic(depth);

std::random_device rnd;
std::mt19937_64 rnd_gen(rnd());
std::uniform_int_distribution<uint64_t> unif_dist(
0, max_leaf_index - state.range(1));

RCPrf<32> rcprf(Key<RCPrfParams::kKeySize>(), depth);

auto callback = [](size_t, std::array<uint8_t, 32>) {};

for (auto _ : state) {
// randomly generate a starting point
uint64_t start_index = unif_dist(rnd_gen);

state.PauseTiming();
auto constrained
= rcprf.constrain(start_index, start_index + state.range(1));

state.ResumeTiming();

constrained.eval_range(
start_index, start_index + state.range(1), callback);
}
state.SetItemsProcessed(state.iterations() * state.range(1));
}

BENCHMARK(BM_RCPrf_eval)->RangeMultiplier(2)->Range(48, 48);

BENCHMARK(BM_RCPrf_eval_range)
->RangeMultiplier(2)
->Ranges({{48, 48}, {8, 128}});
// ->Ranges({{16, 32}, {8, 128}});

BENCHMARK(BM_RCPrf_eval_range_constrain)
->RangeMultiplier(2)
->Range(4, 62); // Arg(4)->Arg(8)->Arg(16)->Arg(4)->Arg(4);
->Ranges({{48, 48}, {8, 128}});
// ->Ranges({{16, 32}, {8, 128}});

0 comments on commit da507ef

Please sign in to comment.