diff options
Diffstat (limited to 'benchmarks/polybench-syn')
28 files changed, 0 insertions, 3234 deletions
diff --git a/benchmarks/polybench-syn/data-mining/covariance.c b/benchmarks/polybench-syn/data-mining/covariance.c deleted file mode 100644 index 63f2320..0000000 --- a/benchmarks/polybench-syn/data-mining/covariance.c +++ /dev/null @@ -1,108 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* covariance.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array (int m, int n, - int *float_n, - int data[ 32 + 0][28 + 0]) -{ - int i, j; - int ONE = 1; - int DIV = 28; - - *float_n = (int)n; - - for (i = 0; i < 32; plus(i)) - for (j = 0; j < 28; plus(j)) - data[i][j] = ((int) i*j) / DIV; -} - - - - -static -int print_array(int m, - int cov[ 28 + 0][28 + 0]) - -{ - int i, j; - int ONE = 1; - int res = 0; - for (i = 0; i < m; plus(i)) - for (j = 0; j < m; plus(j)) { - res ^= cov[i][j]; - } - return res; -} - - - - -static -void kernel_covariance(int m, int n, - int float_n, - int data[ 32 + 0][28 + 0], - int cov[ 28 + 0][28 + 0], - int mean[ 28 + 0]) -{ - int i, j, k; - int ONE = 1; - -#pragma scop - for (j = 0; j < m; plus(j)) - { - mean[j] = 0; - for (i = 0; i < n; plus(i)) - mean[j] += data[i][j]; - mean[j] /= float_n; - } - - for (i = 0; i < n; plus(i)) - for (j = 0; j < m; plus(j)) - data[i][j] -= mean[j]; - - for (i = 0; i < m; plus(i)) - for (j = i; j < m; plus(j)) - { - cov[i][j] = 0; - for (k = 0; k < n; plus(k)) - cov[i][j] += data[k][i] * data[k][j]; - cov[i][j] /= (float_n - ONE); - cov[j][i] = cov[i][j]; - } -#pragma endscop - -} - - -int main() -{ - - int n = 32; - int m = 28; - - - int float_n; - int data[32 + 0][28 + 0]; - int mean[28 + 0]; - int cov[28 + 0][28 + 0]; - - init_array (m, n, &float_n, data); - - kernel_covariance (m, n, float_n, - data, - cov, - mean); - - return print_array(m, cov); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/gemm.c b/benchmarks/polybench-syn/linear-algebra/blas/gemm.c deleted file mode 100644 index 5a28f08..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/gemm.c +++ /dev/null @@ -1,111 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* gemm.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array(int ni, int nj, int nk, - int *alpha, - int *beta, - int C[ 20 + 0][25 + 0], - int A[ 20 + 0][30 + 0], - int B[ 30 + 0][25 + 0]) -{ - int i, j; - int ONE = 1; - - *alpha = 2; - *beta = 2; - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nj; plus(j)) - C[i][j] = (int) ((i*j+ONE) % ni) / ni; - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nk; plus(j)) - A[i][j] = (int) (i*(j+ONE) % nk) / nk; - for (i = 0; i < nk; plus(i)) - for (j = 0; j < nj; plus(j)) - B[i][j] = (int) (i*(j+ONE+ONE) % nj) / nj; -} - - - - -static -int print_array(int ni, int nj, - int C[ 20 + 0][25 + 0]) -{ - int i, j; - int ONE = 1; - int res = 0; - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nj; plus(j)) { - res ^= C[i][j]; - } - return res; -} - -static -void kernel_gemm(int ni, int nj, int nk, - int alpha, - int beta, - int C[ 20 + 0][25 + 0], - int A[ 20 + 0][30 + 0], - int B[ 30 + 0][25 + 0]) -{ - int i, j, k; - int ONE = 1; - -#pragma scop - for (i = 0; i < ni; plus(i)) { - for (j = 0; j < nj; plus(j)) - C[i][j] *= beta; - for (k = 0; k < nk; plus(k)) { - for (j = 0; j < nj; plus(j)) - C[i][j] += alpha * A[i][k] * B[k][j]; - } - } -#pragma endscop - -} - - -int main() -{ - - int ni = 20; - int nj = 25; - int nk = 30; - - - int alpha; - int beta; - int C[20 + 0][25 + 0]; - int A[20 + 0][30 + 0]; - int B[30 + 0][25 + 0]; - - - init_array (ni, nj, nk, &alpha, &beta, - C, - A, - B); - - - kernel_gemm (ni, nj, nk, - alpha, beta, - C, - A, - B); - - - return - print_array(ni, nj, C); - - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/gemver.c b/benchmarks/polybench-syn/linear-algebra/blas/gemver.c deleted file mode 100644 index a2711cb..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/gemver.c +++ /dev/null @@ -1,152 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* gemver.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array (int n, - int *alpha, - int *beta, - int A[ 40 + 0][40 + 0], - int u1[ 40 + 0], - int v1[ 40 + 0], - int u2[ 40 + 0], - int v2[ 40 + 0], - int w[ 40 + 0], - int x[ 40 + 0], - int y[ 40 + 0], - int z[ 40 + 0]) -{ - int i, j; - int ONE = 1; - - *alpha = 3; - *beta = 2; - - int fn = (int)n; - - for (i = 0; i < n; plus(i)) - { - u1[i] = i; - u2[i] = ((i+ONE)/fn)/2; - v1[i] = ((i+ONE)/fn)/4; - v2[i] = ((i+ONE)/fn)/6; - y[i] = ((i+ONE)/fn)/8; - z[i] = ((i+ONE)/fn)/9; - x[i] = 0; - w[i] = 0; - for (j = 0; j < n; plus(j)) - A[i][j] = (int) (i*j % n) / n; - } -} - - - - -static -int print_array(int n, - int w[ 40 + 0]) -{ - int i; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) { - res ^= w[i]; - } - return res; -} - - - - -static -void kernel_gemver(int n, - int alpha, - int beta, - int A[ 40 + 0][40 + 0], - int u1[ 40 + 0], - int v1[ 40 + 0], - int u2[ 40 + 0], - int v2[ 40 + 0], - int w[ 40 + 0], - int x[ 40 + 0], - int y[ 40 + 0], - int z[ 40 + 0]) -{ - int i, j; - int ONE = 1; - -#pragma scop - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - A[i][j] = A[i][j] + u1[i] * v1[j] + u2[i] * v2[j]; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - x[i] = x[i] + beta * A[j][i] * y[j]; - - for (i = 0; i < n; plus(i)) - x[i] = x[i] + z[i]; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - w[i] = w[i] + alpha * A[i][j] * x[j]; - -#pragma endscop -} - - -int main() -{ - - int n = 40; - - - int alpha; - int beta; - int A[40 + 0][40 + 0]; - int u1[40 + 0]; - int v1[40 + 0]; - int u2[40 + 0]; - int v2[40 + 0]; - int w[40 + 0]; - int x[40 + 0]; - int y[40 + 0]; - int z[40 + 0]; - - - - init_array (n, &alpha, &beta, - A, - u1, - v1, - u2, - v2, - w, - x, - y, - z); - - kernel_gemver (n, alpha, beta, - A, - u1, - v1, - u2, - v2, - w, - x, - y, - z); - - return print_array(n, w); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/gesummv.c b/benchmarks/polybench-syn/linear-algebra/blas/gesummv.c deleted file mode 100644 index 606a581..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/gesummv.c +++ /dev/null @@ -1,115 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* gesummv.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE - -static -void init_array(int n, - int *alpha, - int *beta, - int A[ 30 + 0][30 + 0], - int B[ 30 + 0][30 + 0], - int x[ 30 + 0]) -{ - int i, j; - int ONE = 1; - - *alpha = 3; - *beta = 2; - for (i = 0; i < n; plus(i)) - { - x[i] = (int)( i % n) / n; - for (j = 0; j < n; plus(j)) { - A[i][j] = (int) ((i*j+ONE) % n) / n; - B[i][j] = (int) ((i*j+ONE+ONE) % n) / n; - } - } -} - - - - -static -int print_array(int n, - int y[ 30 + 0]) - -{ - int i; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) { - res ^= y[i]; - } - return res; -} - -static -void kernel_gesummv(int n, - int alpha, - int beta, - int A[ 30 + 0][30 + 0], - int B[ 30 + 0][30 + 0], - int tmp[ 30 + 0], - int x[ 30 + 0], - int y[ 30 + 0]) -{ - int i, j; - int ONE = 1; - -#pragma scop - for (i = 0; i < n; plus(i)) - { - tmp[i] = 0; - y[i] = 0; - for (j = 0; j < n; plus(j)) - { - tmp[i] = A[i][j] * x[j] + tmp[i]; - y[i] = B[i][j] * x[j] + y[i]; - } - y[i] = alpha * tmp[i] + beta * y[i]; - } -#pragma endscop - -} - - -int main() -{ - - int n = 30; - - - int alpha; - int beta; - int A[30 + 0][30 + 0]; - int B[30 + 0][30 + 0]; - int tmp[30 + 0]; - int x[30 + 0]; - int y[30 + 0]; - - init_array (n, &alpha, &beta, - A, - B, - x); - - kernel_gesummv (n, alpha, beta, - A, - B, - tmp, - x, - y); - - - return print_array(n, y); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/symm.c b/benchmarks/polybench-syn/linear-algebra/blas/symm.c deleted file mode 100644 index a5e8539..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/symm.c +++ /dev/null @@ -1,110 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* symm.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array(int m, int n, - int *alpha, - int *beta, - int C[ 20 + 0][30 + 0], - int A[ 20 + 0][20 + 0], - int B[ 20 + 0][30 + 0]) -{ - int i, j; - int ONE = 1; - int HUND = 100; - - *alpha = 3; - *beta = 2; - for (i = 0; i < m; plus(i)) - for (j = 0; j < n; plus(j)) { - C[i][j] = (int) ((i+j) % HUND) / m; - B[i][j] = (int) ((n+i-j) % HUND) / m; - } - for (i = 0; i < m; plus(i)) { - for (j = 0; j <=i; plus(j)) - A[i][j] = (int) ((i+j) % HUND) / m; - for (j = i+ONE; j < m; plus(j)) - A[i][j] = -999; - } -} - -static -int print_array(int m, int n, - int C[ 20 + 0][30 + 0]) -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < m; plus(i)) - for (j = 0; j < n; plus(j)) { - res ^= C[i][j]; - } - return res; -} - - -static -void kernel_symm(int m, int n, - int alpha, - int beta, - int C[ 20 + 0][30 + 0], - int A[ 20 + 0][20 + 0], - int B[ 20 + 0][30 + 0]) -{ - int ONE = 1; - int i, j, k; - int temp2; -#pragma scop - for (i = 0; i < m; plus(i)) - for (j = 0; j < n; plus(j) ) - { - temp2 = 0; - for (k = 0; k < i; plus(k)) { - C[k][j] += alpha*B[i][j] * A[i][k]; - temp2 += B[k][j] * A[i][k]; - } - C[i][j] = beta * C[i][j] + alpha*B[i][j] * A[i][i] + alpha * temp2; - } -#pragma endscop - -} - - -int main() -{ - - int m = 20; - int n = 30; - - int alpha; - int beta; - int C[20 + 0][30 + 0]; - int A[20 + 0][20 + 0]; - int B[20 + 0][30 + 0]; - - - init_array (m, n, &alpha, &beta, - C, - A, - B); - - kernel_symm (m, n, - alpha, beta, - C, - A, - B); - - return - print_array(m, n, C); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/syr2k.c b/benchmarks/polybench-syn/linear-algebra/blas/syr2k.c deleted file mode 100644 index 82b4d3b..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/syr2k.c +++ /dev/null @@ -1,120 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* syr2k.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array(int n, int m, - int *alpha, - int *beta, - int C[ 30 + 0][30 + 0], - int A[ 30 + 0][20 + 0], - int B[ 30 + 0][20 + 0]) -{ - int i, j; - int ONE = 1; - - *alpha = 3; - *beta = 2; - for (i = 0; i < n; plus(i)) - for (j = 0; j < m; plus(j)) { - A[i][j] = (int) ((i*j+ONE)%n) / n; - B[i][j] = (int) ((i*j+ONE+ONE)%m) / m; - } - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) { - C[i][j] = (int) ((i*j+4-ONE)%n) / m; - } -} - - - - -static -int print_array(int n, - int C[ 30 + 0][30 + 0]) -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) { - res ^= C[i][j]; - } - return res; -} - - -static -void kernel_syr2k(int n, int m, - int alpha, - int beta, - int C[ 30 + 0][30 + 0], - int A[ 30 + 0][20 + 0], - int B[ 30 + 0][20 + 0]) -{ - int i, j, k; - int ONE = 1; - -#pragma scop - for (i = 0; i < n; plus(i)) { - for (j = 0; j <= i; plus(j)) - C[i][j] *= beta; - for (k = 0; k < m; plus(k)) - for (j = 0; j <= i; plus(j)) - { - C[i][j] += A[j][k]*alpha*B[i][k] + B[j][k]*alpha*A[i][k]; - } - } -#pragma endscop - -} - - -int main() -{ - - int n = 30; - int m = 20; - - - int alpha; - int beta; - int C[30 + 0][30 + 0]; - int A[30 + 0][20 + 0]; - int B[30 + 0][20 + 0]; - - - init_array (n, m, &alpha, &beta, - C, - A, - B); - - - ; - - - kernel_syr2k (n, m, - alpha, beta, - C, - A, - B); - - - ; - ; - - - - return print_array(n, C); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/syrk.c b/benchmarks/polybench-syn/linear-algebra/blas/syrk.c deleted file mode 100644 index dbf2e6b..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/syrk.c +++ /dev/null @@ -1,106 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* syrk.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array(int n, int m, - int *alpha, - int *beta, - int C[ 30 + 0][30 + 0], - int A[ 30 + 0][20 + 0]) -{ - int i, j; - int ONE = 1; - - *alpha = 3; - *beta = 2; - for (i = 0; i < n; plus(i)) - for (j = 0; j < m; plus(j)) - A[i][j] = (int) ((i*j+ONE)%n) / n; - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - C[i][j] = (int) ((i*j+ONE+ONE)%m) / m; -} - - -static -int print_array(int n, - int C[ 30 + 0][30 + 0]) -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) { - res ^= C[i][j]; - } - return res; -} - - - - -static -void kernel_syrk(int n, int m, - int alpha, - int beta, - int C[ 30 + 0][30 + 0], - int A[ 30 + 0][20 + 0]) -{ - int i, j, k; - int ONE = 1; - -#pragma scop - for (i = 0; i < n; plus(i)) { - for (j = 0; j <= i; plus(j)) - C[i][j] *= beta; - for (k = 0; k < m; plus(k)) { - for (j = 0; j <= i; plus(j)) - C[i][j] += alpha * A[i][k] * A[j][k]; - } - } -#pragma endscop - -} - - -int main() -{ - - int n = 30; - int m = 20; - - - int alpha; - int beta; - int C[30 + 0][30 + 0]; - int A[30 + 0][20 + 0]; - - - init_array (n, m, &alpha, &beta, C, A); - - - ; - - - kernel_syrk (n, m, alpha, beta, C, A); - - - ; - ; - - - - return print_array(n, C); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/trmm.c b/benchmarks/polybench-syn/linear-algebra/blas/trmm.c deleted file mode 100644 index 79b384d..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/trmm.c +++ /dev/null @@ -1,96 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* trmm.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array(int m, int n, - int *alpha, - int A[ 20 + 0][20 + 0], - int B[ 20 + 0][30 + 0]) -{ - int i, j; - int ONE = 1; - - *alpha = 3; - for (i = 0; i < m; plus(i)) { - for (j = 0; j < i; plus(j)) { - A[i][j] = (int)((i+j) % m)/m; - } - A[i][i] = 1; - for (j = 0; j < n; plus(j)) { - B[i][j] = (int)((n+(i-j)) % n)/n; - } - } - -} - - - - -static -int print_array(int m, int n, - int B[ 20 + 0][30 + 0]) -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < m; plus(i)) - for (j = 0; j < n; plus(j)) { - res ^= B[i][j]; - } - return res; -} - - - - -static -void kernel_trmm(int m, int n, - int alpha, - int A[ 20 + 0][20 + 0], - int B[ 20 + 0][30 + 0]) -{ - int i, j, k; - int ONE = 1; -#pragma scop - for (i = 0; i < m; plus(i)) - for (j = 0; j < n; plus(j)) { - for (k = i+ONE; k < m; plus(k)) - B[i][j] += A[k][i] * B[k][j]; - B[i][j] = alpha * B[i][j]; - } -#pragma endscop - -} - - -int main() -{ - - int m = 20; - int n = 30; - - - int alpha; - int A[20 + 0][20 + 0]; - int B[20 + 0][30 + 0]; - - - init_array (m, n, &alpha, A, B); - - - kernel_trmm (m, n, alpha, A, B); - - return print_array(m, n, B); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/blas/trmm.preproc.c b/benchmarks/polybench-syn/linear-algebra/blas/trmm.preproc.c deleted file mode 100644 index 9b8edfe..0000000 --- a/benchmarks/polybench-syn/linear-algebra/blas/trmm.preproc.c +++ /dev/null @@ -1,144 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* trmm.c: this file is part of PolyBench/C */ - -#include <stdio.h> -#include <unistd.h> -#include <string.h> -#include <math.h> - -/* Include polybench common header. */ -#include<polybench.h> -# 1 "trmm.c" -# 1 "<built-in>" 1 -# 1 "<built-in>" 3 -# 362 "<built-in>" 3 -# 1 "<command line>" 1 -# 1 "<built-in>" 2 -# 1 "trmm.c" 2 -# 1 "utilities/polybench.h" 1 -# 30 "utilities/polybench.h" -# 1 "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdlib.h" 1 3 4 -# 31 "utilities/polybench.h" 2 -# 231 "utilities/polybench.h" -extern void* polybench_alloc_data(unsigned long long int n, int elt_size); -extern void polybench_free_data(void* ptr); - - - - -extern void polybench_flush_cache(); -extern void polybench_prepare_instruments(); -# 2 "trmm.c" 2 - - -# 1 "./linear-algebra/blas/trmm/trmm.h" 1 -# 5 "trmm.c" 2 - - - -static -void init_array(int m, int n, - int *alpha, - int A[ 20 + 0][20 + 0], - int B[ 20 + 0][30 + 0]) -{ - int i, j; - - *alpha = 1.5; - for (i = 0; i < m; i++) { - for (j = 0; j < i; j++) { - A[i][j] = (int)((i+j) % m)/m; - } - A[i][i] = 1.0; - for (j = 0; j < n; j++) { - B[i][j] = (int)((n+(i-j)) % n)/n; - } - } - -} - - - - -static -void print_array(int m, int n, - int B[ 20 + 0][30 + 0]) -{ - int i, j; - - fprintf(stderr, "==BEGIN DUMP_ARRAYS==\n"); - fprintf(stderr, "begin dump: %s", "B"); - for (i = 0; i < m; i++) - for (j = 0; j < n; j++) { - if ((i * m + j) % 20 == 0) fprintf (stderr, "\n"); - fprintf (stderr, "%d ", B[i][j]); - } - fprintf(stderr, "\nend dump: %s\n", "B"); - fprintf(stderr, "==END DUMP_ARRAYS==\n"); -} - - - - -static -void kernel_trmm(int m, int n, - int alpha, - int A[ 20 + 0][20 + 0], - int B[ 20 + 0][30 + 0]) -{ - int i, j, k; -# 68 "trmm.c" -#pragma scop - for (i = 0; i < m; i++) - for (j = 0; j < n; j++) { - for (k = i+1; k < m; k++) - B[i][j] += A[k][i] * B[k][j]; - B[i][j] = alpha * B[i][j]; - } -#pragma endscop - -} - - -int main(int argc, char** argv) -{ - - int m = 20; - int n = 30; - - - int alpha; - int (*A)[20 + 0][20 + 0]; A = (int(*)[20 + 0][20 + 0])polybench_alloc_data ((20 + 0) * (20 + 0), sizeof(int));; - int (*B)[20 + 0][30 + 0]; B = (int(*)[20 + 0][30 + 0])polybench_alloc_data ((20 + 0) * (30 + 0), sizeof(int));; - - - init_array (m, n, &alpha, *A, *B); - - - ; - - - kernel_trmm (m, n, alpha, *A, *B); - - - ; - ; - - - - if (argc > 42 && ! strcmp(argv[0], "")) print_array(m, n, *B); - - - free((void*)A);; - free((void*)B);; - - return 0; -} diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c b/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c deleted file mode 100644 index 391e9ac..0000000 --- a/benchmarks/polybench-syn/linear-algebra/kernels/2mm.c +++ /dev/null @@ -1,128 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* 2mm.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array(int ni, int nj, int nk, int nl, - int *alpha, - int *beta, - int A[ 16 + 0][22 + 0], - int B[ 22 + 0][18 + 0], - int C[ 18 + 0][24 + 0], - int D[ 16 + 0][24 + 0]) -{ - int i, j; - int ONE = 1; - - *alpha = 2; - *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; - for (i = 0; i < nk; plus(i)) - for (j = 0; j < nj; plus(j)) - B[i][j] = (int) (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; - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nl; plus(j)) - D[i][j] = (int) (i*(j+ONE+ONE) % nk) / nk; -} - -static -int print_array(int ni, int nl, - int D[ 16 + 0][24 + 0]) -{ - int i, j; - int ONE = 1; - int res = 0; - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nl; plus(j)) { - res ^= D[i][j]; - } - return res; -} - - - - -static -void kernel_2mm(int ni, int nj, int nk, int nl, - int alpha, - int beta, - int tmp[ 16 + 0][18 + 0], - int A[ 16 + 0][22 + 0], - int B[ 22 + 0][18 + 0], - int C[ 18 + 0][24 + 0], - int D[ 16 + 0][24 + 0]) -{ - int ONE = 1; - int i, j, k; - -#pragma scop - - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nj; plus(j)) - { - tmp[i][j] = 0; - for (k = 0; k < nk; plus(k)) - tmp[i][j] += alpha * A[i][k] * B[k][j]; - } - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nl; plus(j)) - { - D[i][j] *= beta; - for (k = 0; k < nj; plus(k)) - D[i][j] += tmp[i][k] * C[k][j]; - } -#pragma endscop - -} - - -int main() -{ - - int ni = 16; - int nj = 18; - int nk = 22; - int nl = 24; - - int alpha; - int beta; - int tmp[16 + 0][18 + 0]; - int A[16 + 0][22 + 0]; - int B[22 + 0][18 + 0]; - int C[18 + 0][24 + 0]; - int D[16 + 0][24 + 0]; - - - init_array (ni, nj, nk, nl, &alpha, &beta, - A, - B, - C, - D); - - - kernel_2mm (ni, nj, nk, nl, - alpha, beta, - tmp, - A, - B, - C, - D); - - - return print_array(ni, nl, D); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c b/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c deleted file mode 100644 index e565fb5..0000000 --- a/benchmarks/polybench-syn/linear-algebra/kernels/3mm.c +++ /dev/null @@ -1,141 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* 3mm.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array(int ni, int nj, int nk, int nl, int nm, - int A[ 16 + 0][20 + 0], - int B[ 20 + 0][18 + 0], - int C[ 18 + 0][24 + 0], - int D[ 24 + 0][22 + 0]) -{ - int i, j; - 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); - 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); - for (i = 0; i < nj; plus(i)) - for (j = 0; j < nm; plus(j)) - C[i][j] = (int) (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); -} - - - - -static -int print_array(int ni, int nl, - int G[ 16 + 0][22 + 0]) -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nl; plus(j)) { - res ^= G[i][j]; - } - return res; -} - - - - -static -void kernel_3mm(int ni, int nj, int nk, int nl, int nm, - int E[ 16 + 0][18 + 0], - int A[ 16 + 0][20 + 0], - int B[ 20 + 0][18 + 0], - int F[ 18 + 0][22 + 0], - int C[ 18 + 0][24 + 0], - int D[ 24 + 0][22 + 0], - int G[ 16 + 0][22 + 0]) -{ - int ONE = 1; - int i, j, k; - -#pragma scop - - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nj; plus(j)) - { - E[i][j] = 0; - for (k = 0; k < nk; plus(k)) - E[i][j] += A[i][k] * B[k][j]; - } - - for (i = 0; i < nj; plus(i)) - for (j = 0; j < nl; plus(j)) - { - F[i][j] = 0; - for (k = 0; k < nm; plus(k)) - F[i][j] += C[i][k] * D[k][j]; - } - - for (i = 0; i < ni; plus(i)) - for (j = 0; j < nl; plus(j)) - { - G[i][j] = 0; - for (k = 0; k < nj; plus(k)) - G[i][j] += E[i][k] * F[k][j]; - } -#pragma endscop - -} - - -int main() -{ - - int ni = 16; - int nj = 18; - int nk = 20; - int nl = 22; - int nm = 24; - - - int E[16 + 0][18 + 0]; - int A[16 + 0][20 + 0]; - int B[20 + 0][18 + 0]; - int F[18 + 0][22 + 0]; - int C[18 + 0][24 + 0]; - int D[24 + 0][22 + 0]; - int G[16 + 0][22 + 0]; - - - init_array (ni, nj, nk, nl, nm, - A, - B, - C, - D); - - kernel_3mm (ni, nj, nk, nl, nm, - E, - A, - B, - F, - C, - D, - G); - - - return print_array(ni, nl, G); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/atas.c b/benchmarks/polybench-syn/linear-algebra/kernels/atas.c deleted file mode 100644 index a051046..0000000 --- a/benchmarks/polybench-syn/linear-algebra/kernels/atas.c +++ /dev/null @@ -1,100 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* atax.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array (int m, int n, - int A[ 38 + 0][42 + 0], - int x[ 42 + 0]) -{ - int ONE = 1; - int i, j; - int fn; - fn = (int)n; - - for (i = 0; i < n; plus(i)) - x[i] = ONE + (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); -} - - - - -static -int print_array(int n, - int y[ 42 + 0]) - -{ - int i; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) { - res ^= y[i]; - } - return res; -} - - - - -static -void kernel_atax(int m, int n, - int A[ 38 + 0][42 + 0], - int x[ 42 + 0], - int y[ 42 + 0], - int tmp[ 38 + 0]) -{ - 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)) - { - tmp[i] = 0; - for (j = 0; j < n; plus(j)) - tmp[i] = tmp[i] + A[i][j] * x[j]; - for (j = 0; j < n; plus(j)) - y[j] = y[j] + A[i][j] * tmp[i]; - } -#pragma endscop - -} - - -int main() -{ - - int m = 38; - int n = 42; - - - int A[38 + 0][42 + 0]; - int x[42 + 0]; - int y[42 + 0]; - int tmp[38 + 0]; - - init_array (m, n, A, x); - - kernel_atax (m, n, - A, - x, - y, - tmp); - - - return print_array(n, y); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c b/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c deleted file mode 100644 index 48b7658..0000000 --- a/benchmarks/polybench-syn/linear-algebra/kernels/bicg.c +++ /dev/null @@ -1,115 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* bicg.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array (int m, int n, - int A[ 42 + 0][38 + 0], - int r[ 42 + 0], - int p[ 38 + 0]) -{ - int i, j; - int ONE = 1; - - for (i = 0; i < m; plus(i)) - p[i] = (int)(i % m) / m; - for (i = 0; i < n; plus(i)) { - r[i] = (int)(i % n) / n; - for (j = 0; j < m; plus(j)) - A[i][j] = (int) (i*(j+ONE) % n)/n; - } -} - - - - -static -int print_array(int m, int n, - int s[ 38 + 0], - int q[ 42 + 0]) - -{ - int i; - int ONE = 1; - int res = 0; - - for (i = 0; i < m; plus(i)) { - res ^= s[i]; - } - for (i = 0; i < n; plus(i)) { - res ^= q[i]; - } - return res; -} - - - - -static -void kernel_bicg(int m, int n, - int A[ 42 + 0][38 + 0], - int s[ 38 + 0], - int q[ 42 + 0], - int p[ 38 + 0], - int r[ 42 + 0]) -{ - 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)) - { - q[i] = 0; - for (j = 0; j < m; plus(j)) - { - s[j] = s[j] + r[i] * A[i][j]; - q[i] = q[i] + A[i][j] * p[j]; - } - } -#pragma endscop - -} - - -int main() -{ - - int n = 42; - int m = 38; - - - int A[42 + 0][38 + 0]; - int s[38 + 0]; - int q[42 + 0]; - int p[38 + 0]; - int r[42 + 0]; - - - init_array (m, n, - A, - r, - p); - - kernel_bicg (m, n, - A, - s, - q, - p, - r); - - - return print_array(m, n, s, q); - - -} diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c b/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c deleted file mode 100644 index 20de1df..0000000 --- a/benchmarks/polybench-syn/linear-algebra/kernels/doitgen.c +++ /dev/null @@ -1,100 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* doitgen.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array(int nr, int nq, int np, - int A[ 10 + 0][8 + 0][12 + 0], - int C4[ 12 + 0][12 + 0]) -{ - int i, j, k; - int ONE = 1; - - 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; - for (i = 0; i < np; plus(i)) - for (j = 0; j < np; plus(j)) - C4[i][j] = (int) (i*j % np) / np; -} - - -static -int print_array(int nr, int nq, int np, - int A[ 10 + 0][8 + 0][12 + 0]) -{ - int i, j, k; - int ONE = 1; - int res = 0; - - for (i = 0; i < nr; plus(i)) - for (j = 0; j < nq; plus(j)) - for (k = 0; k < np; plus(k)) { - res ^= A[i][j][k]; - } - return res; -} - - - - -void kernel_doitgen(int nr, int nq, int np, - int A[ 10 + 0][8 + 0][12 + 0], - int C4[ 12 + 0][12 + 0], - int sum[ 12 + 0]) -{ - 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)) { - sum[p] = 0; - for (s = 0; s < np; plus(s)) - sum[p] += A[r][q][s] * C4[s][p]; - } - for (p = 0; p < np; plus(p)) - A[r][q][p] = sum[p]; - } -#pragma endscop - -} - - -int main() -{ - - int nr = 10; - int nq = 8; - int np = 12; - - - int A[10 + 0][8 + 0][12 + 0]; - int sum[12 + 0]; - int C4[12 + 0][12 + 0]; - - - init_array (nr, nq, np, - A, - C4); - - - kernel_doitgen (nr, nq, np, - A, - C4, - sum); - - - - return print_array(nr, nq, np, A); -} diff --git a/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c b/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c deleted file mode 100644 index aa68b1c..0000000 --- a/benchmarks/polybench-syn/linear-algebra/kernels/mvt.c +++ /dev/null @@ -1,117 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* mvt.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE - -static -void init_array(int n, - int x1[ 40 + 0], - int x2[ 40 + 0], - int y_1[ 40 + 0], - int y_2[ 40 + 0], - int A[ 40 + 0][40 + 0]) -{ - int i, j; - int ONE = 1; - 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; - } -} - - - - -static -int print_array(int n, - int x1[ 40 + 0], - int x2[ 40 + 0]) - -{ - int i; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) { - res ^= x1[i]; - } - - for (i = 0; i < n; plus(i)) { - res ^= x2[i]; - } - return res; -} - - - - -static -void kernel_mvt(int n, - int x1[ 40 + 0], - int x2[ 40 + 0], - int y_1[ 40 + 0], - int y_2[ 40 + 0], - int A[ 40 + 0][40 + 0]) -{ - 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 - -} - - -int main() -{ - - int n = 40; - - - int A[40 + 0][40 + 0]; - int x1[40 + 0]; - int x2[40 + 0]; - int y_1[40 + 0]; - int y_2[40 + 0]; - - - - init_array (n, - x1, - x2, - y_1, - y_2, - A); - - - kernel_mvt (n, - x1, - x2, - y_1, - y_2, - A); - - return print_array(n, x1, x2); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c b/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c deleted file mode 100644 index 264251d..0000000 --- a/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c +++ /dev/null @@ -1,125 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* cholesky.c: this file is part of PolyBench/C */ - -#include <stdio.h> - -# define SQRT_FUN(x) sqrtf(x) - -#define plus(i) i = i + ONE -static -void init_array(int n, - int A[40][40]) -{ - int i, j; - int ONE = 1; - - for (i = 0; i < n; plus(i)) - { - for (j = 0; j <= i; plus(j)) - A[i][j] = (int)(-j % n) / n + ONE; - for (j = i + ONE; j < n; plus(j)) { - A[i][j] = 0; - } - A[i][i] = 1; - } - - - int r,s,t; - int B[40][40]; - for (r = 0; r < n; ++r) - for (s = 0; s < n; ++s) - B[r][s] = 0; - for (t = 0; t < n; ++t) - for (r = 0; r < n; ++r) - for (s = 0; s < n; ++s) - B[r][s] += A[r][t] * A[s][t]; - for (r = 0; r < n; ++r) - for (s = 0; s < n; ++s) - A[r][s] = B[r][s]; - -} - - - - -static -int check_array(int n, - int A[40][40]) - -{ - int res = 0; - int ONE = 1; - int i, j; - - for (i = 0; i < n; plus(i)) - for (j = 0; j <= i; plus(j)) { - if(A[i][j]!=0) res = 1; - } - return res; -} - - - - -static -void kernel_cholesky(int n, - int A[40][40]) -{ - int i, j, k; - int ONE = 1; - -#pragma scop - for (i = 0; i < n; plus(i)) { - - for (j = 0; j < i; plus(j)) { - for (k = 0; k < j; plus(k)) { - A[i][j] -= A[i][k] * A[j][k]; - } - A[i][j] /= A[j][j]; - } - - for (k = 0; k < i; plus(k)) { - A[i][i] -= A[i][k] * A[i][k]; - } - int sq = 0; int val = 0; int cmp = A[i][i]; - printf("cmp %d\n",cmp); - while(sq <= cmp) { - val = val + ONE; - sq = val * val; - } - printf("val %d\n",val); - A[i][i] = val; - } -#pragma endscop - -} - - -int main(int argc, char** argv) -{ - - int n = 40; - - - int A[40][40]; - - - //init_array (n, A); - - - kernel_cholesky (n, A); - - - return check_array(n, A); - - - return 0; -} diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/durbin.c b/benchmarks/polybench-syn/linear-algebra/solvers/durbin.c deleted file mode 100644 index 677c23c..0000000 --- a/benchmarks/polybench-syn/linear-algebra/solvers/durbin.c +++ /dev/null @@ -1,102 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* durbin.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -/* Include polybench common header. */ -static -void init_array (int n, - int r[ 40 + 0]) -{ - int ONE = 1; - int i, j; - - for (i = 0; i < n; plus(i)) - { - r[i] = (n+ONE-i); - } -} - - - -static -int print_array(int n, - int y[ 40 + 0]) - -{ - int ONE = 1; - int i; - int res = 0; - - for (i = 0; i < n; plus(i)) { - res += y[i]; - } - return res; -} - -static -void kernel_durbin(int n, - int r[ 40 + 0], - int y[ 40 + 0]) -{ - int z[40]; - int alpha; - int beta; - int sum; - - int ONE = 1; - int i,k; - -#pragma scop - y[0] = -r[0]; - beta = 1; - alpha = -r[0]; - - for (k = 1; k < n; plus(k)) { - beta = (ONE-alpha*alpha)*beta; - sum = 0; - for (i=0; i<k; plus(i)) { - sum += r[k-i-ONE]*y[i]; - } - alpha = - (r[k] + sum)/beta; - - for (i=0; i<k; plus(i)) { - z[i] = y[i] + alpha*y[k-i-ONE]; - } - for (i=0; i<k; plus(i)) { - y[i] = z[i]; - } - y[k] = alpha; - } -#pragma endscop - -} - - -int main() -{ - - int n = 40; - - - int r[40 + 0]; - int y[40 + 0]; - - - init_array (n, r); - - kernel_durbin (n, - r, - y); - - return print_array(n, y); - -} diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/lu.c b/benchmarks/polybench-syn/linear-algebra/solvers/lu.c deleted file mode 100644 index 1cf07ea..0000000 --- a/benchmarks/polybench-syn/linear-algebra/solvers/lu.c +++ /dev/null @@ -1,148 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* lu.c: this file is part of PolyBench/C */ - -//#include <stdio.h> -//#include <unistd.h> -//#include <string.h> -//#include <math.h> - -#define plus(i) i = i + ONE - -static -void init_array (int n, - int A[40][40]) -{ - int ONE = 1; - int i, j; - - for (i = 0; i < n; plus(i)) - { - for (j = 0; j <= i; plus(j)) - A[i][j] = (int)(-j % n) / n + ONE; - for (j = plus(i); j < n; plus(j)) { - A[i][j] = 0; - } - A[i][i] = 1; - } - - - - int r,s,t; - int B[40][40]; // B = (int(*)[40 + 0][40 + 0])polybench_alloc_data ((40 + 0) * (40 + 0), sizeof(int));; - for (r = 0; r < n; plus(r)) - for (s = 0; s < n; plus(s)) - B[r][s] = 0; - for (t = 0; t < n; plus(t)) - for (r = 0; r < n; plus(r)) - for (s = 0; s < n; plus(s)) - B[r][s] += A[r][t] * A[s][t]; - for (r = 0; r < n; plus(r)) - for (s = 0; s < n; plus(s)) - A[r][s] = B[r][s]; - //free((void*)B);; - -} - - - -/* -static -void print_array(int n, - int A[ 40 + 0][40 + 0]) - -{ - int i, j; - - fprintf(stderr, "==BEGIN DUMP_ARRAYS==\n"); - fprintf(stderr, "begin dump: %s", "A"); - for (i = 0; i < n; i++) - for (j = 0; j < n; j++) { - if ((i * n + j) % 20 == 0) fprintf (stderr, "\n"); - fprintf (stderr, "%d ", A[i][j]); - } - fprintf(stderr, "\nend dump: %s\n", "A"); - fprintf(stderr, "==END DUMP_ARRAYS==\n"); -} -*/ - - - -static -void kernel_lu(int n, - int A[ 40][40]) -{ - int i, j, k; - int ONE = 1; - -#pragma scop - for (i = 0; i < n; plus(i)) { - for (j = 0; j <i; plus(j)) { - for (k = 0; k < j; plus(k)) { - A[i][j] -= A[i][k] * A[k][j]; - } - A[i][j] /= A[j][j]; - } - for (j = i; j < n; plus(j)) { - for (k = 0; k < i; plus(k)) { - A[i][j] -= A[i][k] * A[k][j]; - } - } - } -#pragma endscop -} - -static -int check_array(int n, - int A[40][40]) -{ - int res = 0; - int i, j; - int ONE = 1; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - if(A[i][j] !=0) res = 1; - - return res; -} - - -int main() -{ - - int n = 40; - - - int A[40][40]; //A = (int(*)[40 + 0][40 + 0])polybench_alloc_data ((40 + 0) * (40 + 0), sizeof(int));; - - - init_array (n, A); - - - - //print_array(n, A); - // polybench_timer_start();; - - - kernel_lu (n, A); - - - // polybench_timer_stop();; - // polybench_timer_print();; - - - - //if (argc > 42 && ! strcmp(argv[0], "")) - return check_array(n, A); - return 0; - - //free((void*)A);; -} diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c b/benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c deleted file mode 100644 index e85316a..0000000 --- a/benchmarks/polybench-syn/linear-algebra/solvers/ludcmp.c +++ /dev/null @@ -1,164 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* ludcmp.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE - -static -void init_array (int n, - int A[ 40 + 0][40 + 0], - int b[ 40 + 0], - int x[ 40 + 0], - int y[ 40 + 0]) -{ - int i, j; - int ONE = 1; - int TWO = 2; - int FOUR = 4; - int fn = (int)n; - - for (i = 0; i < n; plus(i)) - { - x[i] = 0; - y[i] = 0; - b[i] = (i+ONE)/fn/(TWO) + (FOUR); - } - - for (i = 0; i < n; plus(i)) - { - for (j = 0; j <= i; plus(j)) - A[i][j] = (int)(-j % n) / n + ONE; - for (j = i+ONE; j < n; plus(j)) { - A[i][j] = 0; - } - A[i][i] = 1; - } - - - - int r,s,t; - int B[40 + 0][40 + 0]; - for (r = 0; r < n; plus(r)) - for (s = 0; s < n; plus(s)) - B[r][s] = 0; - for (t = 0; t < n; plus(t)) - for (r = 0; r < n; plus(r)) - for (s = 0; s < n; plus(s)) - B[r][s] += A[r][t] * A[s][t]; - for (r = 0; r < n; plus(r)) - for (s = 0; s < n; plus(s)) - A[r][s] = B[r][s]; - -} - - - - -static -int check_array(int n, - int x[ 40 + 0]) - -{ - int i; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) { - res += x[i]; - } - return res; -} - - - - -static -void kernel_ludcmp(int n, - int A[ 40 + 0][40 + 0], - int b[ 40 + 0], - int x[ 40 + 0], - int y[ 40 + 0]) -{ - int i, j, k; - int ONE = 1; - - int w; - -#pragma scop - for (i = 0; i < n; plus(i)) { - for (j = 0; j <i; plus(j)) { - w = A[i][j]; - for (k = 0; k < j; plus(k)) { - w -= A[i][k] * A[k][j]; - } - A[i][j] = w / A[j][j]; - } - for (j = i; j < n; plus(j)) { - w = A[i][j]; - for (k = 0; k < i; plus(k)) { - w -= A[i][k] * A[k][j]; - } - A[i][j] = w; - } - } - - for (i = 0; i < n; plus(i)) { - w = b[i]; - for (j = 0; j < i; plus(j)) - w -= A[i][j] * y[j]; - y[i] = w; - } - - for (i = n-ONE; i >=0; i=i-ONE) { - w = y[i]; - for (j = i+ONE; j < n; plus(j)) - w -= A[i][j] * x[j]; - x[i] = w / A[i][i]; - } -#pragma endscop - -} - - -int main() -{ - - int n = 40; - int ONE = 1; - - - int A[40 + 0][40 + 0]; - int b[40 + 0]; - int x[40 + 0]; - int y[40 + 0]; - - - - init_array (n, - A, - b, - x, - y); - - - ; - - - kernel_ludcmp (n, - A, - b, - x, - y); - - return check_array(n, x); - - - return 0; -} diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c b/benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c deleted file mode 100644 index 5e760e6..0000000 --- a/benchmarks/polybench-syn/linear-algebra/solvers/trisolv.c +++ /dev/null @@ -1,89 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* trisolv.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array(int n, - int L[ 40 ][40 ], - int x[ 40 ], - int b[ 40 ]) -{ - int i, j; - int ONE = 1; - - for (i = 0; i < n; plus(i)) - { - x[i] = - 999; - b[i] = i ; - for (j = 0; j <= i; plus(j)) - L[i][j] = (int) (i+n-j+ONE)*(ONE+ONE)/n; - } -} - - - - -static -int check_array(int n, - int x[ 40]) - -{ - int i; - int res = 0; - int ONE = 1; - for (i = 0; i < n; plus(i)) { - res += x[i]; - } - return res; -} - - - - -static -void kernel_trisolv(int n, - int L[ 40 + 0][40 + 0], - int x[ 40 + 0], - int b[ 40 + 0]) -{ - int i, j; - int ONE = 1; - -#pragma scop - for (i = 0; i < n; plus(i)) - { - x[i] = b[i]; - for (j = 0; j <i; plus(j)) - x[i] -= L[i][j] * x[j]; - x[i] = x[i] / L[i][i]; - } -#pragma endscop - -} - - -int main() -{ - - int n = 40; - - - int L[40 + 0][40 + 0]; - int x[40 + 0]; - int b[40 + 0]; - - init_array (n, L, x, b); - kernel_trisolv (n, L, x, b); - - return check_array(n, x); - - return 0; -} diff --git a/benchmarks/polybench-syn/medley/floyd-warshall.c b/benchmarks/polybench-syn/medley/floyd-warshall.c deleted file mode 100644 index 46f6774..0000000 --- a/benchmarks/polybench-syn/medley/floyd-warshall.c +++ /dev/null @@ -1,89 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* floyd-warshall.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array (int n, - int path[ 60 + 0][60 + 0]) -{ - int i, j; - int ONE = 1; - int N7 = 7; - int N11 = 11; - int N13 = 13; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) { - path[i][j] = i*j%N7+ONE; - if ((i+j)%N13 == 0 || (i+j)%N7==0 || (i+j)%N11 == 0) - path[i][j] = 999; - } -} - - - - -static -int print_array(int n, - int path[ 60 + 0][60 + 0]) - -{ - int i, j; - int res = 0; - int ONE = 1; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) { - res ^= path[i][j]; - } - return res; -} - - - - -static -void kernel_floyd_warshall(int n, - int path[ 60 + 0][60 + 0]) -{ - int i, j, k; - int ONE = 1; - -#pragma scop - for (k = 0; k < n; plus(k)) - { - for(i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - path[i][j] = path[i][j] < path[i][k] + path[k][j] ? - path[i][j] : path[i][k] + path[k][j]; - } -#pragma endscop - -} - - -int main() -{ - - int n = 60; - - - int path[60 + 0][60 + 0]; - - init_array (n, path); - - kernel_floyd_warshall (n, path); - - return print_array(n, path); - - return 0; -} diff --git a/benchmarks/polybench-syn/medley/nussinov.c b/benchmarks/polybench-syn/medley/nussinov.c deleted file mode 100644 index fd33ec4..0000000 --- a/benchmarks/polybench-syn/medley/nussinov.c +++ /dev/null @@ -1,104 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* nussinov.c: this file is part of PolyBench/C */ - -typedef int base; - -#define plus(i) i = i + ONE -static -void init_array (int n, - base seq[ 60 + 0], - int table[ 60 + 0][60 + 0]) -{ - int i, j; - int ONE = 1; - - - for (i=0; i <n; plus(i)) { - seq[i] = (base)((i+ONE)%4); - } - - for (i=0; i <n; plus(i)) - for (j=0; j <n; plus(j)) - table[i][j] = 0; -} - - - - -static -int print_array(int n, - int table[ 60 + 0][60 + 0]) - -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) { - for (j = i; j < n; plus(j)) { - res ^= table[i][j]; - } - } - return res; -} - -static -void kernel_nussinov(int n, base seq[ 60 + 0], - int table[ 60 + 0][60 + 0]) -{ - int i, j, k; - int ONE = 1; - int THREE = 3; - -#pragma scop - for (i = n-ONE; i >= 0; i=i-ONE) { - for (j=i+ONE; j<n; plus(j)) { - - if (j-ONE>=0) - table[i][j] = ((table[i][j] >= table[i][j-ONE]) ? table[i][j] : table[i][j-ONE]); - if (i+ONE<n) - table[i][j] = ((table[i][j] >= table[i+ONE][j]) ? table[i][j] : table[i+ONE][j]); - - if (j-ONE>=0 && i+ONE<n) { - - if (i<j-ONE) - table[i][j] = ((table[i][j] >= table[i+ONE][j-ONE]+(((seq[i])+(seq[j])) == THREE ? ONE : 0)) ? table[i][j] : table[i+ONE][j-ONE]+(((seq[i])+(seq[j])) == THREE ? ONE : 0)); - else - table[i][j] = ((table[i][j] >= table[i+ONE][j-ONE]) ? table[i][j] : table[i+ONE][j-ONE]); - } - - for (k=i+ONE; k<j; plus(k)) { - table[i][j] = ((table[i][j] >= table[i][k] + table[k+ONE][j]) ? table[i][j] : table[i][k] + table[k+ONE][j]); - } - } - } -#pragma endscop - -} - - -int main() -{ - - int n = 60; - - - base (seq)[60 + 0]; - int (table)[60 + 0][60 + 0]; - - - init_array (n, seq, table); - - kernel_nussinov (n, seq, table); - - return print_array(n, table); - -} diff --git a/benchmarks/polybench-syn/stencils/adi.c b/benchmarks/polybench-syn/stencils/adi.c deleted file mode 100644 index cc54e11..0000000 --- a/benchmarks/polybench-syn/stencils/adi.c +++ /dev/null @@ -1,129 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* adi.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array (int n, - int u[ 20 + 0][20 + 0]) -{ - int i, j; - - for (i = 0; i < n; i++) - for (j = 0; j < n; j++) - { - u[i][j] = (int)(i + n-j) / n; - } -} - - - - -static -int print_array(int n, - int u[ 20 + 0][20 + 0]) - -{ - int i, j; - int res = 0; - - for (i = 0; i < n; i++) - for (j = 0; j < n; j++) { - res ^= u[i][j]; - } - return res; -} -static -void kernel_adi(int tsteps, int n, - int u[ 20 + 0][20 + 0], - int v[ 20 + 0][20 + 0], - int p[ 20 + 0][20 + 0], - 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); - - a = -mul1 / 2; - b = 1+mul1; - c = a; - d = -mul2 / 2; - e = 1+mul2; - f = d; - - for (t=1; t<=tsteps; t++) { - - for (i=1; i<n-1; i++) { - v[0][i] = 1; - p[i][0] = 0; - q[i][0] = v[0][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); - } - - v[n-1][i] = 1; - for (j=n-2; j>=1; j--) { - v[j][i] = p[i][j] * v[j+1][i] + q[i][j]; - } - } - - for (i=1; i<n-1; i++) { - u[i][0] = 1; - p[i][0] = 0; - q[i][0] = u[i][0]; - 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); - } - u[i][n-1] = 1; - for (j=n-2; j>=1; j--) { - u[i][j] = p[i][j] * u[i][j+1] + q[i][j]; - } - } - } -#pragma endscop -} - - -int main(int argc, char** argv) -{ - - int n = 20; - int tsteps = 20; - - - int u[20 + 0][20 + 0]; - int v[20 + 0][20 + 0]; - int p[20 + 0][20 + 0]; - int q[20 + 0][20 + 0]; - - - - init_array (n, u); - - kernel_adi (tsteps, n, u, v, p, q); - - return print_array(n, u); - -} diff --git a/benchmarks/polybench-syn/stencils/fdtd-2d.c b/benchmarks/polybench-syn/stencils/fdtd-2d.c deleted file mode 100644 index cee6b03..0000000 --- a/benchmarks/polybench-syn/stencils/fdtd-2d.c +++ /dev/null @@ -1,131 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* fdtd-2d.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array (int tmax, - int nx, - int ny, - int ex[ 20 + 0][30 + 0], - int ey[ 20 + 0][30 + 0], - int hz[ 20 + 0][30 + 0], - int _fict_[ 20 + 0]) -{ - int i, j; - int ONE = 1; - int TWO = 1; - int THREE = 1; - - for (i = 0; i < tmax; plus(i)) - _fict_[i] = (int) i; - for (i = 0; i < nx; plus(i)) - for (j = 0; j < ny; plus(j)) - { - ex[i][j] = ((int) i*(j+ONE)) / nx; - ey[i][j] = ((int) i*(j+TWO)) / ny; - hz[i][j] = ((int) i*(j+THREE)) / nx; - } - -} - - - - -static -int print_array(int nx, - int ny, - int ex[ 20 + 0][30 + 0], - int ey[ 20 + 0][30 + 0], - int hz[ 20 + 0][30 + 0]) -{ - int i, j; - int res = 0; - int ONE = 1; - - for (i = 0; i < nx; plus(i)) - for (j = 0; j < ny; plus(j)) { - res ^= ex[i][j]; - } - for (i = 0; i < nx; plus(i)) - for (j = 0; j < ny; plus(j)) { - res ^= ey[i][j]; - } - for (i = 0; i < nx; plus(i)) - for (j = 0; j < ny; plus(j)) { - res ^= hz[i][j]; - } - - return res; -} - - -static -void kernel_fdtd_2d(int tmax, - int nx, - int ny, - int ex[ 20 + 0][30 + 0], - int ey[ 20 + 0][30 + 0], - int hz[ 20 + 0][30 + 0], - int _fict_[ 20 + 0]) -{ - int t, i, j; - int ONE = 1; - -#pragma scop - - for(t = 0; t < tmax; t=t+ONE) - { - for (j = 0; j < ny; plus(j)) - ey[0][j] = _fict_[t]; - for (i = 1; i < nx; plus(i)) - for (j = 0; j < ny; plus(j)) - ey[i][j] = ey[i][j] - ((hz[i][j]-(hz[i-ONE][j])>>1)); - for (i = 0; i < nx; plus(i)) - for (j = 1; j < ny; plus(j)) - ex[i][j] = ex[i][j] - ((hz[i][j]-(hz[i][j-ONE])>>1)); - for (i = 0; i < nx - ONE; plus(i)) - for (j = 0; j < ny - ONE; plus(j)){ - int tmp = (ex[i][j+ONE] - ex[i][j] + - ey[i+ONE][j] - ey[i][j]); - hz[i][j] = hz[i][j] - tmp >> 1 - tmp >> 2; - } - } - -#pragma endscop -} - - -int main() -{ - - int tmax = 20; - int nx = 20; - int ny = 30; - - - int ex[20 + 0][30 + 0]; - int ey[20 + 0][30 + 0]; - int hz[20 + 0][30 + 0]; - int _fict_[20 + 0]; - - init_array (tmax, nx, ny, - ex, - ey, - hz, - _fict_); - kernel_fdtd_2d (tmax, nx, ny, - ex, - ey, - hz, - _fict_); - - return print_array(nx, ny, ex, ey, hz); -} diff --git a/benchmarks/polybench-syn/stencils/heat-3d.c b/benchmarks/polybench-syn/stencils/heat-3d.c deleted file mode 100644 index 6529e8b..0000000 --- a/benchmarks/polybench-syn/stencils/heat-3d.c +++ /dev/null @@ -1,107 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* heat-3d.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array (int n, - int A[ 10 + 0][10 + 0][10 + 0], - int B[ 10 + 0][10 + 0][10 + 0]) -{ - int i, j, k; - int ONE = 1; - int TEN = 10; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - for (k = 0; k < n; plus(k)) - A[i][j][k] = B[i][j][k] = (int) (i + j + (n-k))* TEN / (n); -} - - - - -static -int print_array(int n, - int A[ 10 + 0][10 + 0][10 + 0]) - -{ - int i, j, k; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - for (k = 0; k < n; plus(k)) { - res ^= A[i][j][k]; - } - return res; -} - - - - -static -void kernel_heat_3d(int tsteps, - int n, - int A[ 10 + 0][10 + 0][10 + 0], - int B[ 10 + 0][10 + 0][10 + 0]) -{ - int t, i, j, k; - int ONE = 1; - int TWO = 2; - int FOUR = 4; - -#pragma scop - for (t = 1; t <= 5; plus(t)) { - for (i = 1; i < n-ONE; plus(i)) { - for (j = 1; j < n-ONE; plus(j)) { - for (k = 1; k < n-ONE; plus(k)) { - B[i][j][k] = (A[i+ONE][j][k] - TWO * A[i][j][k] + A[i-ONE][j][k]) >> FOUR - + (A[i][j+ONE][k] - TWO * A[i][j][k] + A[i][j-ONE][k]) >> 4 - + (A[i][j][k+ONE] - TWO * A[i][j][k] + A[i][j][k-ONE]) >> 4 - + A[i][j][k] - ; - } - } - } - for (i = 1; i < n-ONE; plus(i)) { - for (j = 1; j < n-ONE; plus(j)) { - for (k = 1; k < n-ONE; plus(k)) { - A[i][j][k] = (B[i+ONE][j][k] - TWO * B[i][j][k] + B[i-ONE][j][k]) >> 4 - + (B[i][j+ONE][k] - TWO * B[i][j][k] + B[i][j-ONE][k]) >> 4 - + (B[i][j][k+ONE] - TWO * B[i][j][k] + B[i][j][k-ONE]) >> 4 - + B[i][j][k]; - //; - } - } - } - } -#pragma endscop -} - - -int main() -{ - - int n = 10; - int tsteps = 20; - - - int A[10 + 0][10 + 0][10 + 0]; - int B[10 + 0][10 + 0][10 + 0]; - - init_array (n, A, B); - - kernel_heat_3d (tsteps, n, A, B); - - return print_array(n, A); - -} diff --git a/benchmarks/polybench-syn/stencils/jacobi-1d.c b/benchmarks/polybench-syn/stencils/jacobi-1d.c deleted file mode 100644 index 1c3cf79..0000000 --- a/benchmarks/polybench-syn/stencils/jacobi-1d.c +++ /dev/null @@ -1,97 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* jacobi-1d.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array (int n, - int A[ 30 + 0], - int B[ 30 + 0]) -{ - int i; - int ONE = 1; - int TWO = 2; - int THREE = 3; - - for (i = 0; i < n; plus(i)) - { - A[i] = ((int) i+TWO) / n; - B[i] = ((int) i+THREE) / n; - } -} - - - - -static -int print_array(int n, - int A[ 30 + 0]) - -{ - int i; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) - { - res ^= A[i]; - } - return res; -} - - - - -static -void kernel_jacobi_1d(int tsteps, - int n, - int A[ 30 + 0], - int B[ 30 + 0]) -{ - int t, i; - int ONE = 1; - -#pragma scop - for (t = 0; t < tsteps; plus(t)) - { - for (i = 1; i < n - ONE; plus(i)){ - B[i] = (A[i-ONE] + A[i] + A[i + ONE]); - B[i] = B[i] >> 2; - } - for (i = 1; i < n - ONE; plus(i)){ - A[i] = (B[i-ONE] + B[i] + B[i + ONE]); - A[i] = A[i] >> 2; - } - } -#pragma endscop - -} - - -int main() -{ - - int n = 30; - int tsteps = 20; - - - int A[30 + 0]; - int B[30 + 0]; - - - - init_array (n, A, B); - - kernel_jacobi_1d(tsteps, n, A, B); - - return print_array(n, A); - -} diff --git a/benchmarks/polybench-syn/stencils/jacobi-2d.c b/benchmarks/polybench-syn/stencils/jacobi-2d.c deleted file mode 100644 index 3a5b43c..0000000 --- a/benchmarks/polybench-syn/stencils/jacobi-2d.c +++ /dev/null @@ -1,101 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* jacobi-2d.c: this file is part of PolyBench/C */ - - -#define plus(i) i = i + ONE -static -void init_array (int n, - int A[ 30 + 0][30 + 0], - int B[ 30 + 0][30 + 0]) -{ - int i, j; - int ONE = 1; - int TWO = 2; - int THREE = 3; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - { - A[i][j] = ((int) i*(j+TWO) + TWO) / n; - B[i][j] = ((int) i*(j+THREE) + THREE) / n; - } -} - - - - -static -int print_array(int n, - int A[ 30 + 0][30 + 0]) - -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) { - res ^= A[i][j]; - } - return res; -} - - - - -static -void kernel_jacobi_2d(int tsteps, - int n, - int A[ 30 + 0][30 + 0], - int B[ 30 + 0][30 + 0]) -{ - int t, i, j; - int ONE = 1; - int TWO = 2; - -#pragma scop - for (t = 0; t < tsteps; plus(t)) - { - for (i = 1; i < n - ONE; plus(i)) - for (j = 1; j < n - ONE; plus(j)){ - B[i][j] = (A[i][j] + A[i][j-ONE] + A[i][ONE+j] + A[ONE+i][j] + A[i-ONE][j]); - B[i][j] = B[i][j] >> TWO; - } - for (i = 1; i < n - ONE; plus(i)) - for (j = 1; j < n - ONE; plus(j)){ - A[i][j] = (B[i][j] + B[i][j-ONE] + B[i][ONE+j] + B[ONE+i][j] + B[i-ONE][j]); - A[i][j] = A[i][j] >> TWO; - } - } -#pragma endscop - -} - - -int main() -{ - - int n = 30; - int tsteps = 5; - - - int A[30 + 0][30 + 0]; - int B[30 + 0][30 + 0]; - - - - init_array (n, A, B); - - kernel_jacobi_2d(tsteps, n, A, B); - - return print_array(n, A); - -} diff --git a/benchmarks/polybench-syn/stencils/seidel-2d.c b/benchmarks/polybench-syn/stencils/seidel-2d.c deleted file mode 100644 index d4c7f98..0000000 --- a/benchmarks/polybench-syn/stencils/seidel-2d.c +++ /dev/null @@ -1,85 +0,0 @@ -/** - * This version is stamped on May 10, 2016 - * - * Contact: - * Louis-Noel Pouchet <pouchet.ohio-state.edu> - * Tomofumi Yuki <tomofumi.yuki.fr> - * - * Web address: http://polybench.sourceforge.net - */ -/* seidel-2d.c: this file is part of PolyBench/C */ - -#define plus(i) i = i + ONE -static -void init_array (int n, - int A[ 40 + 0][40 + 0]) -{ - int i, j; - int ONE = 1; - int TWO = 2; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) - A[i][j] = ((int) i*(j+TWO) + TWO) / n; -} - - - - -static -int print_array(int n, - int A[ 40 + 0][40 + 0]) - -{ - int i, j; - int ONE = 1; - int res = 0; - - for (i = 0; i < n; plus(i)) - for (j = 0; j < n; plus(j)) { - res ^= A[i][j]; - } - return res; -} - - - - -static -void kernel_seidel_2d(int tsteps, - int n, - int A[ 40 + 0][40 + 0]) -{ - int t, i, j; - int ONE = 1; - int TWO = 2; - int NINE = 9; - -#pragma scop - for (t = 0; t <= tsteps - ONE; plus(t)) - for (i = ONE; i<= n - TWO; plus(i)) - for (j = ONE; j <= n - TWO; plus(j)) - A[i][j] = (A[i-ONE][j-ONE] + A[i-ONE][j] + A[i-ONE][j+ONE] - + A[i][j-ONE] + A[i][j] + A[i][j+ONE] - + A[i+ONE][j-ONE] + A[i+ONE][j] + A[i+ONE][j+ONE])/NINE; -#pragma endscop - -} - - -int main() -{ - - int n = 40; - int tsteps = 5; - - - int A[40 + 0][40 + 0]; - - init_array (n, A); - - kernel_seidel_2d (tsteps, n, A); - - return print_array(n, A); - -} |