Skip to content

Commit 83f2970

Browse files
willieyzmkannwischer
authored andcommitted
Port: Rename benchmark parameters to MLD_BENCHMARK_xxx
Make the benchmark parameters (NWARMUP, NITERATIONS, NTESTS) configurable via CFLAGS by wrapping them in #ifndef guards and renaming to MLD_BENCHMARK_NWARMUP, MLD_BENCHMARK_NITERATIONS, and MLD_BENCHMARK_NTESTS. Signed-off-by: willieyz <willie.zhao@chelpis.com>
1 parent 3b15cc6 commit 83f2970

1 file changed

Lines changed: 29 additions & 20 deletions

File tree

test/bench/bench_mldsa.c

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,15 @@
1818
#define crypto_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
1919
#define crypto_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
2020

21-
#define NWARMUP 3
22-
#define NITERATIONS 5
23-
#define NTESTS 1000
21+
#ifndef MLD_BENCHMARK_NWARMUP
22+
#define MLD_BENCHMARK_NWARMUP 3
23+
#endif
24+
#ifndef MLD_BENCHMARK_NITERATIONS
25+
#define MLD_BENCHMARK_NITERATIONS 5
26+
#endif
27+
#ifndef MLD_BENCHMARK_NTESTS
28+
#define MLD_BENCHMARK_NTESTS 1000
29+
#endif
2430
#define MLEN 59
2531
#define CTXLEN 1
2632

@@ -41,15 +47,15 @@ static int cmp_uint64_t(const void *a, const void *b)
4147
return (int)((*((const uint64_t *)a)) - (*((const uint64_t *)b)));
4248
}
4349

44-
static void print_avg(const char *txt, uint64_t cyc[NTESTS])
50+
static void print_avg(const char *txt, uint64_t cyc[MLD_BENCHMARK_NTESTS])
4551
{
4652
uint64_t avg = 0;
4753
int i;
48-
for (i = 0; i < NTESTS; i++)
54+
for (i = 0; i < MLD_BENCHMARK_NTESTS; i++)
4955
{
5056
avg += cyc[i];
5157
}
52-
avg /= (NTESTS * NITERATIONS);
58+
avg /= (MLD_BENCHMARK_NTESTS * MLD_BENCHMARK_NITERATIONS);
5359
printf("%10s cycles (avg) = %" PRIu64 "\n", txt, avg);
5460
}
5561

@@ -62,18 +68,20 @@ static void print_percentile_legend(void)
6268
printf("%21s", "percentile");
6369
for (i = 0; i < sizeof(percentiles) / sizeof(percentiles[0]); i++)
6470
{
65-
printf("%7d", percentiles[i]);
71+
printf("%9d", percentiles[i]);
6672
}
6773
printf("\n");
6874
}
6975

70-
static void print_percentiles(const char *txt, uint64_t cyc[NTESTS])
76+
static void print_percentiles(const char *txt,
77+
uint64_t cyc[MLD_BENCHMARK_NTESTS])
7178
{
7279
unsigned i;
7380
printf("%10s percentiles:", txt);
7481
for (i = 0; i < sizeof(percentiles) / sizeof(percentiles[0]); i++)
7582
{
76-
printf("%7" PRIu64, (cyc)[NTESTS * percentiles[i] / 100] / NITERATIONS);
83+
printf("%9" PRIu64, (cyc)[MLD_BENCHMARK_NTESTS * percentiles[i] / 100] /
84+
MLD_BENCHMARK_NITERATIONS);
7785
}
7886
printf("\n");
7987
}
@@ -91,24 +99,25 @@ static int bench(void)
9199
unsigned i, j;
92100
uint64_t t0, t1;
93101

94-
uint64_t cycles_kg[NTESTS], cycles_sign[NTESTS], cycles_verify[NTESTS];
102+
uint64_t cycles_kg[MLD_BENCHMARK_NTESTS], cycles_sign[MLD_BENCHMARK_NTESTS],
103+
cycles_verify[MLD_BENCHMARK_NTESTS];
95104
unsigned char pre[CTXLEN + 2];
96105

97-
for (i = 0; i < NTESTS; i++)
106+
for (i = 0; i < MLD_BENCHMARK_NTESTS; i++)
98107
{
99108
int ret = 0;
100109
CHECK(mld_randombytes(kg_rand, sizeof(kg_rand)) == 0);
101110
CHECK(mld_randombytes(sig_rand, sizeof(sig_rand)) == 0);
102111

103112

104113
/* Key-pair generation */
105-
for (j = 0; j < NWARMUP; j++)
114+
for (j = 0; j < MLD_BENCHMARK_NWARMUP; j++)
106115
{
107116
ret |= crypto_sign_keypair_internal(pk, sk, kg_rand);
108117
}
109118

110119
t0 = get_cyclecounter();
111-
for (j = 0; j < NITERATIONS; j++)
120+
for (j = 0; j < MLD_BENCHMARK_NITERATIONS; j++)
112121
{
113122
ret |= crypto_sign_keypair_internal(pk, sk, kg_rand);
114123
}
@@ -125,13 +134,13 @@ static int bench(void)
125134
memcpy(pre + 2, ctx, CTXLEN);
126135

127136

128-
for (j = 0; j < NWARMUP; j++)
137+
for (j = 0; j < MLD_BENCHMARK_NWARMUP; j++)
129138
{
130139
ret |= crypto_sign_signature_internal(sig, &siglen, m, MLEN, pre,
131140
CTXLEN + 2, sig_rand, sk, 0);
132141
}
133142
t0 = get_cyclecounter();
134-
for (j = 0; j < NITERATIONS; j++)
143+
for (j = 0; j < MLD_BENCHMARK_NITERATIONS; j++)
135144
{
136145
ret |= crypto_sign_signature_internal(sig, &siglen, m, MLEN, pre,
137146
CTXLEN + 2, sig_rand, sk, 0);
@@ -140,12 +149,12 @@ static int bench(void)
140149
cycles_sign[i] = t1 - t0;
141150

142151
/* Verification */
143-
for (j = 0; j < NWARMUP; j++)
152+
for (j = 0; j < MLD_BENCHMARK_NWARMUP; j++)
144153
{
145154
ret |= crypto_sign_verify(sig, siglen, m, MLEN, ctx, CTXLEN, pk);
146155
}
147156
t0 = get_cyclecounter();
148-
for (j = 0; j < NITERATIONS; j++)
157+
for (j = 0; j < MLD_BENCHMARK_NITERATIONS; j++)
149158
{
150159
ret |= crypto_sign_verify(sig, siglen, m, MLEN, ctx, CTXLEN, pk);
151160
}
@@ -161,9 +170,9 @@ static int bench(void)
161170

162171
printf("\n");
163172

164-
qsort(cycles_kg, NTESTS, sizeof(uint64_t), cmp_uint64_t);
165-
qsort(cycles_sign, NTESTS, sizeof(uint64_t), cmp_uint64_t);
166-
qsort(cycles_verify, NTESTS, sizeof(uint64_t), cmp_uint64_t);
173+
qsort(cycles_kg, MLD_BENCHMARK_NTESTS, sizeof(uint64_t), cmp_uint64_t);
174+
qsort(cycles_sign, MLD_BENCHMARK_NTESTS, sizeof(uint64_t), cmp_uint64_t);
175+
qsort(cycles_verify, MLD_BENCHMARK_NTESTS, sizeof(uint64_t), cmp_uint64_t);
167176

168177

169178
print_percentile_legend();

0 commit comments

Comments
 (0)