File tree Expand file tree Collapse file tree 12 files changed +1039
-202
lines changed Expand file tree Collapse file tree 12 files changed +1039
-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
+ echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo > /dev/null
8
+ sudo cpupower -c 0 frequency-set -g performance > /dev/null
9
+ command -v taskset > /dev/null && TASKSET_CMD=" taskset -c 0"
10
+
11
+ run_bench () {
12
+ local dir=$1 bin=$2 log=$3
13
+ (
14
+ cd " $dir "
15
+ $TASKSET_CMD env SECP256K1_BENCH_ITERS=$BENCH_ITERS nice -n 0 ./bin/$bin >> " ../../$log " 2>&1
16
+ echo " " >> " ../../$log "
17
+ )
18
+ }
19
+
20
+ bench_config () {
21
+ local config=" $1 "
22
+ local dir=" build/$config "
23
+ local log=" ${config} _bench.csv"
24
+
25
+ if [[ ! -d " $dir " ]]; then
26
+ echo -e " \033[1;31m✖ $config \033[0m (no dir)"
27
+ return 1
28
+ fi
29
+
30
+ {
31
+ echo " Benchmark results for $config "
32
+ echo " Generated on $( date) "
33
+ echo " Iterations: $BENCH_ITERS "
34
+ echo " "
35
+ } > " $log "
36
+
37
+ for bin in bench bench_ecmult bench_internal; do
38
+ if run_bench " $dir " " $bin " " $log " ; then
39
+ echo " ✔ $bin "
40
+ else
41
+ echo " ✖ $bin "
42
+ return 1
43
+ fi
44
+ done
45
+
46
+ echo -e " \033[1;32m✔ $config \033[0m (log: $log )"
47
+ }
48
+
49
+ for sse2 in " ${options[@]} " ; do
50
+ for avx2 in " ${options[@]} " ; do
51
+ config=" INT128"
52
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
53
+ [[ $avx2 == " ON" ]] && config+=" _AVX2"
54
+
55
+ bench_config " $config "
56
+ done
57
+ done
58
+
59
+ for sse2 in " ${options[@]} " ; do
60
+ config=" INT64"
61
+ [[ $sse2 == " ON" ]] && config+=" _SSE2"
62
+
63
+ bench_config " $config "
64
+ done
65
+
66
+ 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