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 LDA, TILE_A[m][n], m, n );
148 double (*TILE_A)[NT][TILE_SIZE * TILE_SIZE],
enum DDSS_UPLO UPLO )
156 for ( m = 0; m < MT; m++ )
158 for ( n = NT-1; n >= m; n-- )
160 #pragma oss task inout(TILE_A[m][n]) \ 161 label( dsymmflat2tiled ) 164 &A[m * TILE_SIZE * N + n * TILE_SIZE],
165 LDA, TILE_A[m][n], m, n );
170 else if ( UPLO == Lower )
172 for ( m = 0; m < MT; m++ )
174 for ( n = 0; n <= m; n++ )
176 #pragma oss task inout(TILE_A[m][n]) \ 177 label( dsymmflat2tiled ) 180 &A[m * TILE_SIZE * N + n * TILE_SIZE],
181 LDA, TILE_A[m][n], m, n );
239 double *TILE_A,
int MID,
int NID )
244 int tile_size_m, tile_size_n;
249 for ( i = 0; i < tile_size_m; i++ )
251 for ( j = 0; j < tile_size_n; j++ )
253 TILE_A[i * tile_size_n + j] = A[i * LDA + j];
void ddss_dgather_tile(int M, int N, double *A, int LDA, double *TILE_A, int MID, int NID)
void ddss_dflat2tiled(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])
void ddss_dsymflat2tiled(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)
int ddss_tile_size(int M, int MT)