1 #include "../include/lass.h" 69 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE] )
75 for ( m = 0; m < MT; m++ )
77 for ( n = 0; n < NT; n++ )
79 #pragma oss task inout(TILE_A[m][n]) \ 83 &A[m * TILE_SIZE * N + n * TILE_SIZE], LDA,
143 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE] )
149 for ( m = 0; m < MT; m++ )
151 for ( n = 0; n < NT; n++ )
153 #pragma oss task inout(TILE_A[m][n]) \ 157 &A[m * TILE_SIZE * N + n * TILE_SIZE], LDA,
158 TILE_A[m][n], m, n );
224 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE],
enum DDSS_UPLO UPLO )
232 for ( m = 0; m < MT; m++ )
234 for ( n = NT-1; n >= m; n-- )
236 #pragma oss task inout(TILE_A[m][n]) \ 237 label( dsymmtiled2flat ) 240 &A[m * TILE_SIZE * N + n * TILE_SIZE], LDA,
241 TILE_A[m][n], m, n );
246 else if ( UPLO == Lower )
248 for ( m = 0; m < MT; m++ )
250 for ( n = 0; n <= m; n++ )
252 #pragma oss task inout(TILE_A[m][n]) \ 253 label( dsymmtiled2flat ) 256 &A[m * TILE_SIZE * N + n * TILE_SIZE], LDA,
257 TILE_A[m][n], m, n );
325 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE],
enum DDSS_UPLO UPLO )
333 for ( m = 0; m < MT; m++ )
335 for ( n = NT-1; n >= m; n-- )
337 #pragma oss task inout(TILE_A[m][n]) \ 338 label( dsymmtiled2flat_nb ) 341 &A[m * TILE_SIZE * N + n * TILE_SIZE], LDA,
342 TILE_A[m][n], m, n );
347 else if ( UPLO == Lower )
349 for ( m = 0; m < MT; m++ )
351 for ( n = 0; n <= m; n++ )
353 #pragma oss task inout(TILE_A[m][n]) \ 354 label( dsymmtiled2flat_nb ) 357 &A[m * TILE_SIZE * N + n * TILE_SIZE], LDA,
358 TILE_A[m][n], m, n );
415 double *TILE_A,
int MID,
int NID )
420 int tile_size_m, tile_size_n;
425 for ( i = 0; i < tile_size_m; i++ )
427 for ( j = 0; j < tile_size_n; j++ )
429 A[i * LDA + j] = TILE_A[i * tile_size_n + j];
void ddss_dsymtiled2flat(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)
void ddss_dscatter_tile(int M, int N, double *A, int LDA, double *TILE_A, int MID, int NID)
void ddss_dtiled2flat_nb(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])
void ddss_dsymtiled2flat_nb(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)
void ddss_dtiled2flat(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])
int ddss_tile_size(int M, int MT)