File tree Expand file tree Collapse file tree 12 files changed +1551
-202
lines changed Expand file tree Collapse file tree 12 files changed +1551
-202
lines changed Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+ set -e
3
+
4
+ options=(" OFF" " ON" )
5
+ BENCH_ITERS=${SECP256K1_BENCH_ITERS:- 20000}
6
+
7
+ MAX_FREQ=$( cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
8
+
9
+ sudo cpupower -c 0 frequency-set -f " $(( MAX_FREQ/ 1000 )) MHz" > /dev/null
10
+
11
+ command -v taskset > /dev/null && TASKSET_CMD=" taskset -c 0"
12
+
13
+ run_bench () {
14
+ local dir=$1 bin=$2 log=$3
15
+ (
16
+ cd " $dir "
17
+ $TASKSET_CMD env SECP256K1_BENCH_ITERS=$BENCH_ITERS nice -n 0 ./bin/$bin >> " ../../$log " 2>&1
18
+ echo " " >> " ../../$log "
19
+ )
20
+ }
21
+
22
+ bench_config () {
23
+ local config=" $1 "
24
+ local dir=" build/$config "
25
+ local log=" ${config} _bench.csv"
26
+
27
+ if [[ ! -d " $dir " ]]; then
28
+ echo -e " \033[1;31m✖ $config \033[0m (no dir)"
29
+ return 1
30
+ fi
31
+
32
+ {
33
+ echo " Benchmark results for $config "
34
+ echo " Generated on $( date) "
35
+ echo " Iterations: $BENCH_ITERS "
36
+ echo " "
37
+ } > " $log "
38
+
39
+ for bin in bench bench_ecmult bench_internal; do
40
+ if run_bench " $dir " " $bin " " $log " ; then
41
+ echo " ✔ $bin "
42
+ else
43
+ echo " ✖ $bin "
44
+ return 1
45
+ fi
46
+ done
47
+
48
+ echo -e " \033[1;32m✔ $config \033[0m (log: $log )"
49
+ }
50
+
51
+ for sse2 in " ${options[@]} " ; do
52
+ for avx2 in " ${options[@]} " ; do
53
+ config=" INT128"
54
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
55
+ [[ $avx2 == " ON" ]] && config+=" _AVX2"
56
+
57
+ bench_config " $config "
58
+ done
59
+ done
60
+
61
+ for sse2 in " ${options[@]} " ; do
62
+ config=" INT64"
63
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
64
+
65
+ bench_config " $config "
66
+ done
67
+
68
+ echo -e " \n\033[1;33mAll benchmarks successful. Logs in project root\033[0m"
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+ set -e
3
+
4
+ options=(" OFF" " ON" )
5
+ mkdir -p build
6
+
7
+ build () {
8
+ local config=" $1 "
9
+ local flags=" $2 "
10
+ local dir=" build/$config "
11
+ local log=" ${config} _build.log"
12
+
13
+ mkdir -p " $dir "
14
+ (
15
+ cd " $dir "
16
+ if ! cmake ../.. -G Ninja -DSECP256K1_APPEND_CFLAGS=" $flags " & > " ../../$log " ; then
17
+ echo -e " \033[1;31m✖ $config (log: $log )\033[0m"
18
+ return 1
19
+ fi
20
+ if ! ninja & >> " ../../$log " ; then
21
+ echo -e " \033[1;31m✖ $config (log: $log )\033[0m"
22
+ return 1
23
+ fi
24
+ )
25
+ echo -e " \033[1;32m✔ $config \033[0m (log: $log )"
26
+ }
27
+
28
+ for sse2 in " ${options[@]} " ; do
29
+ for avx2 in " ${options[@]} " ; do
30
+ config=" INT128"
31
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
32
+ [[ $avx2 == " ON" ]] && config+=" _AVX2"
33
+
34
+ flags=" "
35
+ [[ $sse2 == " ON" ]] && flags+=" -msse2" || flags+=" -mno-sse2"
36
+ [[ $avx2 == " ON" ]] && flags+=" -mavx2" || flags+=" -mno-avx2"
37
+
38
+ build " $config " " $flags "
39
+ done
40
+ done
41
+
42
+ for sse2 in " ${options[@]} " ; do
43
+ config=" INT64"
44
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
45
+
46
+ flags=" -DUSE_FORCE_WIDEMUL_INT64=1"
47
+ [[ $sse2 == " ON" ]] && flags+=" -msse2" || flags+=" -mno-sse2"
48
+
49
+ build " $config " " $flags "
50
+ done
51
+
52
+ echo -e " \n\033[1;33mAll builds done. Logs in project root\033[0m"
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+ set -e
3
+
4
+ options=(" OFF" " ON" )
5
+
6
+ test_config () {
7
+ local config=" $1 "
8
+ local dir=" build/$config "
9
+ local log=" ${config} _test.log"
10
+
11
+ if [[ ! -d " $dir " ]]; then
12
+ echo -e " \033[1;31m✖ $config \033[0m (no dir)"
13
+ return 1
14
+ fi
15
+
16
+ if (cd " $dir " && ctest --output-on-failure -j" $( nproc) " & > " ../../$log " ); then
17
+ echo -e " \033[1;32m✔ $config \033[0m (log: $log )"
18
+ else
19
+ echo -e " \033[1;31m✖ $config \033[0m (log: $log )"
20
+ return 1
21
+ fi
22
+ }
23
+
24
+ for sse2 in " ${options[@]} " ; do
25
+ for avx2 in " ${options[@]} " ; do
26
+ config=" INT128"
27
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
28
+ [[ $avx2 == " ON" ]] && config+=" _AVX2"
29
+
30
+ test_config " $config "
31
+ done
32
+ done
33
+
34
+ for sse2 in " ${options[@]} " ; do
35
+ config=" INT64"
36
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
37
+
38
+ test_config " $config "
39
+ done
40
+
41
+ echo -e " \n\033[1;33mAll tests passed. Logs in project root\033[0m"
You can’t perform that action at this time.
0 commit comments