aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNadesh Ramanathan <nadeshramanathan88@gmail.com>2020-11-19 22:36:16 +0000
committerNadesh Ramanathan <nadeshramanathan88@gmail.com>2020-11-19 22:36:16 +0000
commit2f5aedb202bdfb860152f25932c6df40100801bc (patch)
treea84070b2bb9f10ed5ca9cdbe321376e0183b321b
parent4001ed4c6eca2882100fe3735349e67b1cb15e67 (diff)
downloadvericert-kvx-mpardalos-michalis.tar.gz
vericert-kvx-mpardalos-michalis.zip
-rw-r--r--benchmarks/polybench-syn/benchmark-list-master1
-rw-r--r--benchmarks/polybench-syn/stencils/adi.c33
-rw-r--r--benchmarks/polybench-syn/stencils/fdtd-2d.c5
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