From 82125287619ac173fe51feb92d1d1fe8251ff45f Mon Sep 17 00:00:00 2001 From: Dylan Bautista Date: Mon, 17 Feb 2025 15:50:42 +0100 Subject: [PATCH] Enable benchmark error detection. --- lagarto-ox.nix | 55 ++++++++++++++++++++++++++++++-------------------- verify_rvb.awk | 11 +++++++--- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/lagarto-ox.nix b/lagarto-ox.nix index 05bb98b..07b1504 100644 --- a/lagarto-ox.nix +++ b/lagarto-ox.nix @@ -407,6 +407,16 @@ }; bench2 = final.writeShellScript "bench2" '' + #Tests if a benchmark exection was successful + function bench_test { + $@ + local status=$? + if (( status != 0)); then + echo "BENCHMARK-ERROR-STATE" + fi + return $status + } + echo --------BENCHMARKING PHASE--------- # Performs minimal FS setup and runs the SPEC benchmark mkdir /tmp /bin /root @@ -420,42 +430,43 @@ #cat /tmp/spec/time.csv # hpc_benchmarks set -x - axpy-autovect 800 1000 - axpy-cblas 800 1000 - axpy-omp-simd 800 1000 - axpy-scalar 800 1000 + + bench_test "axpy-autovect 800 1000" + bench_test "axpy-cblas 800 1000" + bench_test "axpy-omp-simd 800 1000" + bench_test "axpy-scalar 800 1000" - gemm-autovect 256 - gemm-omp-simd 256 - gemm-scalar 256 + bench_test "gemm-autovect 256" + bench_test "gemm-omp-simd 256" + bench_test "gemm-scalar 256" - somier-autovect 4 32 - somier-omp-simd 4 32 - somier-scalar 4 32 + bench_test "somier-autovect 4 32" + bench_test "somier-omp-simd 4 32" + bench_test "somier-scalar 4 32" - lulesh2.0 -s 4 + bench_test "lulesh2.0 -s 4" - jacobi2d_scalar_vanilla 16 2 + bench_test "jacobi2d_scalar_vanilla 16 2" - hacckernels-autovectorisation 10 - hacckernels-scalar 10 + bench_test "hacckernels-scalar 10" # desktop_benchmarks - blackscholes_scalar 1 ${final.blackscholesInput} /dev/null - - streamcluster_scalar 3 10 16 16 16 10 none output.txt 1 + bench_test "blackscholes_scalar 1 ${final.blackscholesInput} /dev/null" + + bench_test "streamcluster_scalar 3 10 16 16 16 10 none output.txt 1" - canneal_scalar 1 100 300 - canneal_vectorial_intrinsics + bench_test "canneal_vectorial_intrinsics" - pathfinder_serial.exe 64 64 output_64_64.txt - pathfinder_vector.exe 64 64 output_64_64.txt + bench_test "pathfinder_serial.exe 64 64 output_64_64.txt" + bench_test "pathfinder_vector.exe 64 64 output_64_64.txt" - swaptions_scalar -ns 2 -sm 1024 -nt 1 + bench_test "swaptions_scalar -ns 2 -sm 1024 -nt 1" # micro_benchmarks (NO WORKING BENCHMARKS FOR NOW...) + echo "BENCHMARK-SUCESS-STATE" + # Give me a shell at the end bash -l ''; diff --git a/verify_rvb.awk b/verify_rvb.awk index c8ebbe1..3014bf2 100644 --- a/verify_rvb.awk +++ b/verify_rvb.awk @@ -3,13 +3,18 @@ BEGIN { } /^BENCHMARK-SUCESS-STATE/ { bench_success_flag = 1; system("pkill -f -SIGTERM qemu-system-riscv64")} +/^BENCHMARK-ERROR-STATE/ { bench_success_flag = 0; system("pkill -f -SIGTERM qemu-system-riscv64")} {print $0} END { - printf "Benchmark execution has finished.\n"; + + printf "Benchmark execution has finished "; - if (bench_success_flag) + if (bench_success_flag) { + printf "successfully.\n"; exit 0; - else + } else { + printf "with errors.\n"; exit 1; + } } \ No newline at end of file