From 95861dbef966e2cb612b303615681fc29c3acd3d Mon Sep 17 00:00:00 2001 From: Nadesh Ramanathan Date: Wed, 11 Nov 2020 19:47:42 +0000 Subject: polybench edits --- .../polybench-syn/linear-algebra/kernels/2mm.c | 13 +++++------ .../polybench-syn/linear-algebra/kernels/3mm.c | 18 ++++++--------- .../polybench-syn/linear-algebra/kernels/atas.c | 12 ++++------ .../polybench-syn/linear-algebra/kernels/bicg.c | 10 ++++----- .../polybench-syn/linear-algebra/kernels/doitgen.c | 8 +++---- .../polybench-syn/linear-algebra/kernels/mvt.c | 26 +++++++++++----------- 6 files changed, 39 insertions(+), 48 deletions(-) (limited to 'benchmarks/polybench-syn/linear-algebra/kernels') diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c b/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c index 391e9ac..f5c5ff3 100644 --- a/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c +++ b/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c @@ -10,6 +10,8 @@ /* 2mm.c: this file is part of PolyBench/C */ +#include "../../include/misc.h" + #define plus(i) i = i + ONE static void init_array(int ni, int nj, int nk, int nl, @@ -27,16 +29,16 @@ void init_array(int ni, int nj, int nk, int nl, *beta = 2; for (i = 0; i < ni; plus(i)) for (j = 0; j < nk; plus(j)) - A[i][j] = (int) ((i*j+ONE) % ni) / ni; + A[i][j] = (int) divider(smodulo(i*j+ONE, ni), ni); for (i = 0; i < nk; plus(i)) for (j = 0; j < nj; plus(j)) - B[i][j] = (int) (i*(j+ONE) % nj) / nj; + B[i][j] = (int) divider(smodulo(i*(j+ONE), nj), nj); for (i = 0; i < nj; plus(i)) for (j = 0; j < nl; plus(j)) - C[i][j] = (int) ((i*(j+ONE+ONE+ONE)+ONE) % nl) / nl; + C[i][j] = (int) divider(smodulo(i*(j+ONE+ONE+ONE)+ONE, nl), nl); for (i = 0; i < ni; plus(i)) for (j = 0; j < nl; plus(j)) - D[i][j] = (int) (i*(j+ONE+ONE) % nk) / nk; + D[i][j] = (int) divider(smodulo(i*(j+ONE+ONE), nk), nk); } static @@ -69,8 +71,6 @@ void kernel_2mm(int ni, int nj, int nk, int nl, int ONE = 1; int i, j, k; -#pragma scop - for (i = 0; i < ni; plus(i)) for (j = 0; j < nj; plus(j)) { @@ -85,7 +85,6 @@ void kernel_2mm(int ni, int nj, int nk, int nl, for (k = 0; k < nj; plus(k)) D[i][j] += tmp[i][k] * C[k][j]; } -#pragma endscop } diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c b/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c index e565fb5..2905719 100644 --- a/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c +++ b/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c @@ -9,6 +9,9 @@ */ /* 3mm.c: this file is part of PolyBench/C */ + +#include "../../include/misc.h" + #define plus(i) i = i + ONE static void init_array(int ni, int nj, int nk, int nl, int nm, @@ -21,25 +24,22 @@ void init_array(int ni, int nj, int nk, int nl, int nm, int ONE = 1; int TWO = 2; int THREE = 3; - int FIVE = 5; for (i = 0; i < ni; plus(i)) for (j = 0; j < nk; plus(j)) - A[i][j] = (int) ((i*j+ONE) % ni) / (5*ni); + A[i][j] = (int) divider(smodulo((i*j+ONE), ni), (5*ni)); for (i = 0; i < nk; plus(i)) for (j = 0; j < nj; plus(j)) - B[i][j] = (int) ((i*(j+ONE)+TWO) % nj) / (5*nj); + B[i][j] = (int) divider(smodulo((i*(j+ONE)+TWO),nj), (5*nj)); for (i = 0; i < nj; plus(i)) for (j = 0; j < nm; plus(j)) - C[i][j] = (int) (i*(j+THREE) % nl) / (5*nl); + C[i][j] = (int) divider(smodulo(i*(j+THREE), nl), (5*nl)); for (i = 0; i < nm; plus(i)) for (j = 0; j < nl; plus(j)) - D[i][j] = (int) ((i*(j+TWO)+TWO) % nk) / (5*nk); + D[i][j] = (int) divider(smodulo((i*(j+TWO)+TWO), nk), (5*nk)); } - - static int print_array(int ni, int nl, int G[ 16 + 0][22 + 0]) @@ -71,8 +71,6 @@ void kernel_3mm(int ni, int nj, int nk, int nl, int nm, int ONE = 1; int i, j, k; -#pragma scop - for (i = 0; i < ni; plus(i)) for (j = 0; j < nj; plus(j)) { @@ -96,11 +94,9 @@ void kernel_3mm(int ni, int nj, int nk, int nl, int nm, for (k = 0; k < nj; plus(k)) G[i][j] += E[i][k] * F[k][j]; } -#pragma endscop } - int main() { diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/atas.c b/benchmarks/polybench-syn/linear-algebra/kernels/atas.c index a051046..7bd0151 100644 --- a/benchmarks/polybench-syn/linear-algebra/kernels/atas.c +++ b/benchmarks/polybench-syn/linear-algebra/kernels/atas.c @@ -9,6 +9,8 @@ */ /* atax.c: this file is part of PolyBench/C */ +#include "../../include/misc.h" + #define plus(i) i = i + ONE static void init_array (int m, int n, @@ -21,15 +23,13 @@ void init_array (int m, int n, fn = (int)n; for (i = 0; i < n; plus(i)) - x[i] = ONE + (i / fn); + x[i] = ONE + divider(i, fn); for (i = 0; i < m; plus(i)) for (j = 0; j < n; plus(j)) - A[i][j] = (int) ((i+j) % n) / (5*m); + A[i][j] = (int) divider(smodulo(i+j, n),(5*m)); } - - static int print_array(int n, int y[ 42 + 0]) @@ -46,8 +46,6 @@ int print_array(int n, } - - static void kernel_atax(int m, int n, int A[ 38 + 0][42 + 0], @@ -58,7 +56,6 @@ void kernel_atax(int m, int n, int i, j; int ONE = 1; -#pragma scop for (i = 0; i < n; plus(i)) y[i] = 0; for (i = 0; i < m; plus(i)) @@ -69,7 +66,6 @@ void kernel_atax(int m, int n, for (j = 0; j < n; plus(j)) y[j] = y[j] + A[i][j] * tmp[i]; } -#pragma endscop } diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c b/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c index 48b7658..5981924 100644 --- a/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c +++ b/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c @@ -10,6 +10,8 @@ /* bicg.c: this file is part of PolyBench/C */ +#include "../../include/misc.h" + #define plus(i) i = i + ONE static void init_array (int m, int n, @@ -21,11 +23,11 @@ void init_array (int m, int n, int ONE = 1; for (i = 0; i < m; plus(i)) - p[i] = (int)(i % m) / m; + p[i] = divider(smodulo(i, m), m); for (i = 0; i < n; plus(i)) { - r[i] = (int)(i % n) / n; + r[i] = divider(smodulo(i, n), n); for (j = 0; j < m; plus(j)) - A[i][j] = (int) (i*(j+ONE) % n)/n; + A[i][j] = divider(smodulo(i*(j+ONE), n), n); } } @@ -65,7 +67,6 @@ void kernel_bicg(int m, int n, int i, j; int ONE = 1; -#pragma scop for (i = 0; i < m; plus(i)) s[i] = 0; for (i = 0; i < n; plus(i)) @@ -77,7 +78,6 @@ void kernel_bicg(int m, int n, q[i] = q[i] + A[i][j] * p[j]; } } -#pragma endscop } diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c b/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c index 20de1df..081a3ba 100644 --- a/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c +++ b/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c @@ -9,6 +9,8 @@ */ /* doitgen.c: this file is part of PolyBench/C */ +#include "../../include/misc.h" + #define plus(i) i = i + ONE static void init_array(int nr, int nq, int np, @@ -21,10 +23,10 @@ void init_array(int nr, int nq, int np, for (i = 0; i < nr; plus(i)) for (j = 0; j < nq; plus(j)) for (k = 0; k < np; plus(k)) - A[i][j][k] = (int) ((i*j + k)%np) / np; + A[i][j][k] = (int) divider(smodulo((i*j + k), np), np); for (i = 0; i < np; plus(i)) for (j = 0; j < np; plus(j)) - C4[i][j] = (int) (i*j % np) / np; + C4[i][j] = (int) divider(smodulo(i*j, np), np); } @@ -55,7 +57,6 @@ void kernel_doitgen(int nr, int nq, int np, int r, q, p, s; int ONE = 1; -#pragma scop for (r = 0; r < nr; plus(r)) for (q = 0; q < nq; plus(q)) { for (p = 0; p < np; plus(p)) { @@ -66,7 +67,6 @@ void kernel_doitgen(int nr, int nq, int np, for (p = 0; p < np; plus(p)) A[r][q][p] = sum[p]; } -#pragma endscop } diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c b/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c index aa68b1c..7eb612e 100644 --- a/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c +++ b/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c @@ -9,6 +9,8 @@ */ /* mvt.c: this file is part of PolyBench/C */ +#include "../../include/misc.h" + #define plus(i) i = i + ONE static @@ -24,23 +26,23 @@ void init_array(int n, int THREE = 3; for (i = 0; i < n; plus(i)) - { - x1[i] = (int) (i % n) / n; - x2[i] = (int) ((i + ONE) % n) / n; - y_1[i] = (int) ((i + THREE) % n) / n; - y_2[i] = (int) ((i + 4) % n) / n; - for (j = 0; j < n; plus(j)) - A[i][j] = (int) (i*j % n) / n; - } + { + x1[i] = (int) divider(smodulo(i, n), n); + x2[i] = (int) divider(smodulo(i + ONE, n), n); + y_1[i] = (int) divider(smodulo(i + THREE, n), n); + y_2[i] = (int) divider(smodulo(i + 4, n), n); + for (j = 0; j < n; plus(j)) + A[i][j] = (int) divider(smodulo(i*j,n), n); + } } -static + static int print_array(int n, - int x1[ 40 + 0], - int x2[ 40 + 0]) + int x1[ 40 + 0], + int x2[ 40 + 0]) { int i; @@ -71,14 +73,12 @@ void kernel_mvt(int n, int i, j; int ONE = 1; -#pragma scop for (i = 0; i < n; plus(i)) for (j = 0; j < n; plus(j)) x1[i] = x1[i] + A[i][j] * y_1[j]; for (i = 0; i < n; plus(i)) for (j = 0; j < n; plus(j)) x2[i] = x2[i] + A[j][i] * y_2[j]; -#pragma endscop } -- cgit