diff options
Diffstat (limited to 'benchmarks/polybench-syn/linear-algebra')
19 files changed, 0 insertions, 2283 deletions
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; -} |