From f21f8ed249030032f4b0a99c0fcd7e210ddb2e1b Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sat, 10 Jul 2021 21:06:31 +0200 Subject: Add more documentation and clean up benchmarks --- benchmarks/polybench-syn/common.mk | 26 ++++ benchmarks/polybench-syn/data-mining/Makefile | 3 + .../polybench-syn/linear-algebra/blas/Makefile | 3 + .../linear-algebra/blas/trmm.preproc.c | 144 --------------------- .../polybench-syn/linear-algebra/kernels/Makefile | 3 + .../polybench-syn/linear-algebra/solvers/Makefile | 3 + benchmarks/polybench-syn/medley/Makefile | 3 + benchmarks/polybench-syn/stencils/Makefile | 6 + benchmarks/polybench-syn/stencils/adi.c | 23 ++-- 9 files changed, 56 insertions(+), 158 deletions(-) create mode 100644 benchmarks/polybench-syn/common.mk create mode 100644 benchmarks/polybench-syn/data-mining/Makefile create mode 100644 benchmarks/polybench-syn/linear-algebra/blas/Makefile delete mode 100644 benchmarks/polybench-syn/linear-algebra/blas/trmm.preproc.c create mode 100644 benchmarks/polybench-syn/linear-algebra/kernels/Makefile create mode 100644 benchmarks/polybench-syn/linear-algebra/solvers/Makefile create mode 100644 benchmarks/polybench-syn/medley/Makefile create mode 100644 benchmarks/polybench-syn/stencils/Makefile (limited to 'benchmarks') diff --git a/benchmarks/polybench-syn/common.mk b/benchmarks/polybench-syn/common.mk new file mode 100644 index 0000000..6508855 --- /dev/null +++ b/benchmarks/polybench-syn/common.mk @@ -0,0 +1,26 @@ +VERICERT ?= vericert +VERICERT_OPTS ?= -DSYNTHESIS + +IVERILOG ?= iverilog +IVERILOG_OPTS ?= + +%.v: %.c + $(VERICERT) $(VERICERT_OPTS) $< -o $@ + +%.iver: %.v + $(IVERILOG) $(IVERILOG_OPTS) $< -o $@ + +%.gcc: %.c + $(CC) $(CFLAGS) $< -o $@ + +%: %.iver %.gcc + cp $< $@ + +clean: + rm -f *.iver + rm -f *.v + rm -f *.gcc + +.PRECIOUS: %.v +.PHONY: all clean +.SUFFIXES: diff --git a/benchmarks/polybench-syn/data-mining/Makefile b/benchmarks/polybench-syn/data-mining/Makefile new file mode 100644 index 0000000..cbe138d --- /dev/null +++ b/benchmarks/polybench-syn/data-mining/Makefile @@ -0,0 +1,3 @@ +all: covariance + +include ../common.mk diff --git a/benchmarks/polybench-syn/linear-algebra/blas/Makefile b/benchmarks/polybench-syn/linear-algebra/blas/Makefile new file mode 100644 index 0000000..5c6d300 --- /dev/null +++ b/benchmarks/polybench-syn/linear-algebra/blas/Makefile @@ -0,0 +1,3 @@ +all: gemm gemver gesummv symm syr2k syrk trmm + +include ../common.mk 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 - * Tomofumi Yuki - * - * Web address: http://polybench.sourceforge.net - */ -/* trmm.c: this file is part of PolyBench/C */ - -#include -#include -#include -#include - -/* Include polybench common header. */ -#include -# 1 "trmm.c" -# 1 "" 1 -# 1 "" 3 -# 362 "" 3 -# 1 "" 1 -# 1 "" 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/Makefile b/benchmarks/polybench-syn/linear-algebra/kernels/Makefile new file mode 100644 index 0000000..ff59d0f --- /dev/null +++ b/benchmarks/polybench-syn/linear-algebra/kernels/Makefile @@ -0,0 +1,3 @@ +all: 2mm 3mm atas bicg doitgen mvt + +include ../common.mk diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/Makefile b/benchmarks/polybench-syn/linear-algebra/solvers/Makefile new file mode 100644 index 0000000..d466d15 --- /dev/null +++ b/benchmarks/polybench-syn/linear-algebra/solvers/Makefile @@ -0,0 +1,3 @@ +all: cholesky durbin lu ludcmp trisolv + +include ../common.mk diff --git a/benchmarks/polybench-syn/medley/Makefile b/benchmarks/polybench-syn/medley/Makefile new file mode 100644 index 0000000..a64c56d --- /dev/null +++ b/benchmarks/polybench-syn/medley/Makefile @@ -0,0 +1,3 @@ +all: floyd-warshall nussinov + +include ../common.mk diff --git a/benchmarks/polybench-syn/stencils/Makefile b/benchmarks/polybench-syn/stencils/Makefile new file mode 100644 index 0000000..cf23dc6 --- /dev/null +++ b/benchmarks/polybench-syn/stencils/Makefile @@ -0,0 +1,6 @@ +all: adi fdtd-2d heat-3d jacobi-1d jacobi-2d seidel-2d + +include ../common.mk + +adi.v: adi.c + $(VERICERT) $(VERICERT_OPTS) -O0 -finline $< -o $@ diff --git a/benchmarks/polybench-syn/stencils/adi.c b/benchmarks/polybench-syn/stencils/adi.c index ec2bf2a..2f4aca3 100644 --- a/benchmarks/polybench-syn/stencils/adi.c +++ b/benchmarks/polybench-syn/stencils/adi.c @@ -15,28 +15,23 @@ #include #endif -#define plus(i) i = i + ONE - static -void init_array (int n, - int u[ 20 + 0][20 + 0]) +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] = divider((int)(i + n-j) ,n); - } + { + u[i][j] = divider((int)(i + n-j), n); + } } static -int print_array(int n, - int u[ 20 + 0][20 + 0]) - +int print_array(int n, int u[ 20 + 0][20 + 0]) { int i, j; int res = 0; @@ -53,10 +48,10 @@ int print_array(int n, } 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 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 B1, B2; -- cgit