-
Notifications
You must be signed in to change notification settings - Fork 4
/
run_bench.sh
executable file
·67 lines (60 loc) · 1.77 KB
/
run_bench.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
# Copyright 2022 UCLouvain, Belgium
#
# This file is part of pqm4_masked.
#
# pqm4_masked is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, version 3.
#
# pqm4_masked is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# pqm4_masked. If not, see <https://www.gnu.org/licenses/>.
#
SCHEME=$1
MAXD=8
function run_bench() {
rm benchmarks/* -rf
for D in {2..16}
do
rm -rf obj/ bin/
echo "------------------------------"
echo "BENCHMARK CYCLES $D SHARES"
echo "------------------------------"
CFLAGS="-DNSHARES=$D -DBENCH=1 -DBENCH_RND=$BENCH_RND $CUSE"
CFLAGS=$CFLAGS python3 benchmarks.py -p nucleo-l4r5zi --uart /dev/ttyACM0 $TARGET --subspeed -o speed
done
echo "case,bench,shares,calls,perf" > $CYCLES_NAME
cat benchmarks/speed_sub/crypto_kem/$TARGET/* >> $CYCLES_NAME
}
TARGET=$SCHEME/m4fspeed_masked
## Benchmark cycles
# ASM
echo "Benchmarking ASM implementation (cycles)"
CYCLES_NAME=$SCHEME\_asm_cycles.csv
CUSE=""
BENCH_RND="0"
run_bench
# C
echo "Benchmarking C implementation (cycles)"
CYCLES_NAME=$SCHEME\_c_cycles.csv
CUSE="-DUSEC"
BENCH_RND="0"
run_bench
## Benchmark randomness usage
# ASM
echo "Benchmarking ASM implementation (randomness usage)"
CYCLES_NAME=$SCHEME\_asm_rnd.csv
CUSE=""
BENCH_RND="1"
run_bench
# C
echo "Benchmarking C implementation (randomness usage)"
CYCLES_NAME=$SCHEME\_c_rnd.csv
CUSE="-DUSEC"
BENCH_RND="1"
run_bench