diff options
-rw-r--r-- | benchmarks/polybench-syn/benchmark-list-master | 1 | ||||
-rw-r--r-- | benchmarks/polybench-syn/stencils/adi.c | 33 | ||||
-rw-r--r-- | benchmarks/polybench-syn/stencils/fdtd-2d.c | 5 |
3 files changed, 18 insertions, 21 deletions
diff --git a/benchmarks/polybench-syn/benchmark-list-master b/benchmarks/polybench-syn/benchmark-list-master index 142c7c6..ef0d0d0 100644 --- a/benchmarks/polybench-syn/benchmark-list-master +++ b/benchmarks/polybench-syn/benchmark-list-master @@ -1,3 +1,4 @@ +stencils/adi stencils/heat-3d stencils/fdtd-2d stencils/jacobi-1d diff --git a/benchmarks/polybench-syn/stencils/adi.c b/benchmarks/polybench-syn/stencils/adi.c index a424dec..ec2bf2a 100644 --- a/benchmarks/polybench-syn/stencils/adi.c +++ b/benchmarks/polybench-syn/stencils/adi.c @@ -11,7 +11,12 @@ #include "../include/misc.h" +#ifndef SYNTHESIS +#include <stdio.h> +#endif + #define plus(i) i = i + ONE + static void init_array (int n, int u[ 20 + 0][20 + 0]) @@ -21,7 +26,7 @@ void init_array (int n, for (i = 0; i < n; i++) for (j = 0; j < n; j++) { - u[i][j] = (int)(i + n-j) / n; + u[i][j] = divider((int)(i + n-j) ,n); } } @@ -40,6 +45,10 @@ int print_array(int n, for (j = 0; j < n; j++) { res ^= u[i][j]; } +#ifndef SYNTHESIS + printf("finished: %u\n", res); +#endif + return res; } static @@ -50,20 +59,14 @@ void kernel_adi(int tsteps, int n, int q[ 20 + 0][20 + 0]) { int t, i, j; - int DX, DY, DT; int B1, B2; int mul1, mul2; int a, b, c, d, e, f; -#pragma scop - - DX = 1/(int)n; - DY = 1/(int)n; - DT = 1/(int)tsteps; B1 = 2; B2 = 1; - mul1 = B1 * DT / (DX * DX); - mul2 = B2 * DT / (DY * DY); + mul1 = divider(B1 * n * n, tsteps); + mul2 = divider(B2 * n * n, tsteps); a = -(sdivider(mul1,2)); b = 1+mul1; @@ -73,15 +76,15 @@ void kernel_adi(int tsteps, int n, f = d; int ZERO = 0; - for (t=1; t<=tsteps; t++) { + for (t=1; t<=tsteps; t++) { for (i=1; i<n-1; i++) { v[ZERO][i] = 1; p[i][ZERO] = 0; q[i][ZERO] = v[ZERO][i]; for (j=1; j<n-1; j++) { - p[i][j] = -c / (a*p[i][j-1]+b); - q[i][j] = (-d*u[j][i-1]+(1+2*d)*u[j][i] - f*u[j][i+1]-a*q[i][j-1])/(a*p[i][j-1]+b); + p[i][j] = -sdivider(c, (a*p[i][j-1]+b)); + q[i][j] = -sdivider((-d*u[j][i-1]+(1+2*d)*u[j][i] - f*u[j][i+1]-a*q[i][j-1]),(a*p[i][j-1]+b)); } v[n-1][i] = 1; @@ -95,8 +98,8 @@ void kernel_adi(int tsteps, int n, p[i][ZERO] = 0; q[i][ZERO] = u[i][ZERO]; for (j=1; j<n-1; j++) { - p[i][j] = -f / (d*p[i][j-1]+e); - q[i][j] = (-a*v[i-1][j]+(1+2*a)*v[i][j] - c*v[i+1][j]-d*q[i][j-1])/(d*p[i][j-1]+e); + p[i][j] = -sdivider(f, (d*p[i][j-1]+e)); + q[i][j] = sdivider((-a*v[i-1][j]+(1+2*a)*v[i][j] - c*v[i+1][j]-d*q[i][j-1]),(d*p[i][j-1]+e)); } u[i][n-1] = 1; for (j=n-2; j>=1; j--) { @@ -104,10 +107,8 @@ void kernel_adi(int tsteps, int n, } } } -#pragma endscop } - int main() { diff --git a/benchmarks/polybench-syn/stencils/fdtd-2d.c b/benchmarks/polybench-syn/stencils/fdtd-2d.c index d92183e..626bb05 100644 --- a/benchmarks/polybench-syn/stencils/fdtd-2d.c +++ b/benchmarks/polybench-syn/stencils/fdtd-2d.c @@ -13,11 +13,6 @@ #include <stdio.h> #endif -#ifndef SYNTHESIS -#include <stdio.h> -#endif - - #include "../include/misc.h" #define plus(i) i = i + ONE |