From 5dbeb1f003cbc70e2ddcb4132aa75d78c6e5ddb2 Mon Sep 17 00:00:00 2001 From: Daniel Maier <daniel.maier@tu-berlin.de> Date: Mon, 29 Oct 2018 12:11:09 +0100 Subject: [PATCH] gemver: error checking --- codes/gemver/data.bin | Bin 0 -> 16000 bytes codes/gemver/data.o | Bin 0 -> 16608 bytes codes/gemver/gemver.c | 22 ++++++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 codes/gemver/data.bin create mode 100644 codes/gemver/data.o diff --git a/codes/gemver/data.bin b/codes/gemver/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..1092681e1971a58a2c960e2d813b34116dcbacbf GIT binary patch literal 16000 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 LYHX^T@xlK9Q{DR9 literal 0 HcmV?d00001 diff --git a/codes/gemver/data.o b/codes/gemver/data.o new file mode 100644 index 0000000000000000000000000000000000000000..6c0c4a638820502902f15f7dff0d59ad85862cb6 GIT binary patch literal 16608 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 literal 0 HcmV?d00001 diff --git a/codes/gemver/gemver.c b/codes/gemver/gemver.c index a8008a8..8c30035 100644 --- a/codes/gemver/gemver.c +++ b/codes/gemver/gemver.c @@ -77,6 +77,26 @@ void print_array(int n, POLYBENCH_DUMP_FINISH; } +extern double _binary_data_bin_start; +extern double _binary_data_bin_end; + +static +void calc_error(int n, + DATA_TYPE POLYBENCH_1D(w,N,n)) +{ + int i; + double err = 0; + double *accurate = &_binary_data_bin_start; + double *test = &(w[0]); + + /* calculate the mean squared error */ + for (i = 0; i < n; i++) { + err += (accurate[i] - test[i])*(accurate[i] - test[i]); + } + err /= n; + printf("error: %f\n", err); +} + /* Main computational kernel. The whole function will be timed, including the call and return. */ @@ -171,6 +191,8 @@ int main(int argc, char** argv) by the function call in argument. */ polybench_prevent_dce(print_array(n, POLYBENCH_ARRAY(w))); + calc_error(n, POLYBENCH_ARRAY(w)); + /* Be clean. */ POLYBENCH_FREE_ARRAY(A); POLYBENCH_FREE_ARRAY(u1); -- GitLab