int main(int argc, char **argv) { /* Retrieve problem size. */ int n = N; /* Variable declaration/allocation. */ DATA_TYPE alpha; DATA_TYPE beta; POLYBENCH_2D_ARRAY_DECL(A, DATA_TYPE, N, N, n, n); POLYBENCH_1D_ARRAY_DECL(u1, DATA_TYPE, N, n); POLYBENCH_1D_ARRAY_DECL(v1, DATA_TYPE, N, n); POLYBENCH_1D_ARRAY_DECL(u2, DATA_TYPE, N, n); POLYBENCH_1D_ARRAY_DECL(v2, DATA_TYPE, N, n); POLYBENCH_1D_ARRAY_DECL(w, DATA_TYPE, N, n); POLYBENCH_1D_ARRAY_DECL(x, DATA_TYPE, N, n); POLYBENCH_1D_ARRAY_DECL(y, DATA_TYPE, N, n); POLYBENCH_1D_ARRAY_DECL(z, DATA_TYPE, N, n); /* Initialize array(s). */ init_array(n, &alpha, &beta, POLYBENCH_ARRAY(A), POLYBENCH_ARRAY(u1), POLYBENCH_ARRAY(v1), POLYBENCH_ARRAY(u2), POLYBENCH_ARRAY(v2), POLYBENCH_ARRAY(w), POLYBENCH_ARRAY(x), POLYBENCH_ARRAY(y), POLYBENCH_ARRAY(z)); /* Start timer. */ polybench_start_instruments; /* Run kernel. */ kernel_gemver(n, alpha, beta, POLYBENCH_ARRAY(A), POLYBENCH_ARRAY(u1), POLYBENCH_ARRAY(v1), POLYBENCH_ARRAY(u2), POLYBENCH_ARRAY(v2), POLYBENCH_ARRAY(w), POLYBENCH_ARRAY(x), POLYBENCH_ARRAY(y), POLYBENCH_ARRAY(z)); /* Stop and print timer. */ polybench_stop_instruments; polybench_print_instruments; /* Prevent dead-code elimination. All live-out data must be printed by the function call in argument. */ polybench_prevent_dce(print_array(n, POLYBENCH_ARRAY(w))); /* Be clean. */ POLYBENCH_FREE_ARRAY(A); POLYBENCH_FREE_ARRAY(u1); POLYBENCH_FREE_ARRAY(v1); POLYBENCH_FREE_ARRAY(u2); POLYBENCH_FREE_ARRAY(v2); POLYBENCH_FREE_ARRAY(w); POLYBENCH_FREE_ARRAY(x); POLYBENCH_FREE_ARRAY(y); POLYBENCH_FREE_ARRAY(z); return 0; }
int main(int argc, char **argv) { int n = N; double alpha; double beta; double(*A)[N][N]; A = (double(*)[N][N])polybench_alloc_data((N) * (N), sizeof(double)); double(*u1)[N]; u1 = (double(*)[N])polybench_alloc_data(N, sizeof(double)); double(*v1)[N]; v1 = (double(*)[N])polybench_alloc_data(N, sizeof(double)); double(*u2)[N]; u2 = (double(*)[N])polybench_alloc_data(N, sizeof(double)); double(*v2)[N]; v2 = (double(*)[N])polybench_alloc_data(N, sizeof(double)); double(*w)[N]; w = (double(*)[N])polybench_alloc_data(N, sizeof(double)); double(*x)[N]; x = (double(*)[N])polybench_alloc_data(N, sizeof(double)); double(*y)[N]; y = (double(*)[N])polybench_alloc_data(N, sizeof(double)); double(*z)[N]; z = (double(*)[N])polybench_alloc_data(N, sizeof(double)); init_array(n, &alpha, &beta, *A, *u1, *v1, *u2, *v2, *w, *x, *y, *z); polybench_timer_start(); kernel_gemver(n, alpha, beta, *A, *u1, *v1, *u2, *v2, *w, *x, *y, *z); polybench_timer_stop(); polybench_timer_print(); if (argc > 42 && !strcmp(argv[0], "")) print_array(n, *w); free((void *)A); free((void *)u1); free((void *)v1); free((void *)u2); free((void *)v2); free((void *)w); free((void *)x); free((void *)y); free((void *)z); return 0; }