#include #include #include #include #ifndef N #define N 10 #endif int main() { int n = N; static float a[N*N], b[N*N], c[N*N]; int i, j, k; #define ELEMENT(M, I, J) (M)[(J) * N + (I)] for ( i=1; i<=n; i++ ) { for ( j=1; j<=n; j++ ) { ELEMENT(a, i-1, j-1) = (float)(i * j); ELEMENT(b, i-1, j-1) = (float)(j * i); } } #if _OPENACC acc_init(acc_device_not_host); #endif printf("START GEMM()...\n"); fflush(stdout); #pragma omp parallel for shared(n, a, b, c) #pragma acc kernels loop for ( i=0; i