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