Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 3b3e6922 authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

Merge branch 'hotfix' into 'master'

Hotfix

See merge request !49
parents 46e50014 77a80aeb
No related branches found
No related tags found
1 merge request!49Hotfix
Pipeline #
......@@ -610,6 +610,10 @@ int MORSE_Desc_Create_OOC_User(MORSE_desc_t **descptr, MORSE_enum dtyp, int mb,
int (*get_rankof)( const MORSE_desc_t*, int, int ))
{
#if !defined (CHAMELEON_SCHED_STARPU)
(void)descptr; (void)dtyp; (void)mb; (void)nb; (void)bsiz;
(void)lm; (void)ln; (void)i; (void)j; (void)m; (void)n; (void)p; (void)q;
(void)get_rankof;
morse_error("MORSE_Desc_Create_OOC_User", "Only StarPU supports on-demand tile allocation");
return MORSE_ERR_NOT_INITIALIZED;
#else
......
......@@ -127,6 +127,7 @@ inline static void *morse_getaddr_cm(const MORSE_desc_t *A, int m, int n)
**/
inline static void *morse_getaddr_null(const MORSE_desc_t *A, int m, int n)
{
(void)A; (void)m; (void)n;
return NULL;
}
......
......@@ -29,7 +29,7 @@
void MORSE_TASK_dataflush(const MORSE_option_t *options,
const MORSE_desc_t *A, int Am, int An)
{
(void)options; (void)A;
(void)options; (void)A; (void)Am; (void)An;
/*
* This is useful for StarPU implementation, if it happens in Quark, it will
......
......@@ -117,4 +117,6 @@ void MORSE_TASK_zgeadd(const MORSE_option_t *options,
sizeof(MORSE_Complex64_t)*ldb*n, RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn), INOUT,
sizeof(int), &ldb, VALUE,
0);
(void)nb;
}
......@@ -107,6 +107,8 @@ void MORSE_TASK_zgetrf_incpiv(const MORSE_option_t *options,
sizeof(MORSE_bool), &check_info, VALUE,
sizeof(int), &iinfo, VALUE,
0);
(void)L; (void)Lm; (void)Ln; (void)ldl;
}
......
......@@ -123,5 +123,7 @@ void MORSE_TASK_ztradd(const MORSE_option_t *options,
sizeof(MORSE_Complex64_t)*ldb*n, RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn), INOUT,
sizeof(int), &ldb, VALUE,
0);
(void)nb;
}
......@@ -322,33 +322,28 @@ void *RUNTIME_desc_getaddr( const MORSE_desc_t *desc, int m, int n )
int64_t im = m + (desc->i / desc->mb);
int64_t jn = n + (desc->j / desc->nb);
starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(desc->schedopt);
ptrtile += ((int64_t)(desc->lmt) * (int64_t)jn + (int64_t)im);
starpu_data_handle_t *ptrtile = desc->schedopt;
ptrtile += ((int64_t)desc->lmt) * jn + im;
if (*ptrtile == NULL) {
int64_t eltsze = MORSE_Element_Size(desc->dtyp);
int home_node = -1;
void *user_ptr = NULL;
int myrank = desc->myrank;
int owner = desc->get_rankof( desc, m, n );
int64_t eltsze = MORSE_Element_Size(desc->dtyp);
int tempmm = (im == desc->lmt-1) ? (desc->lm - im * desc->mb) : desc->mb;
int tempnn = (jn == desc->lnt-1) ? (desc->ln - jn * desc->nb) : desc->nb;
if ( myrank == owner ) {
if ( desc->get_blkaddr(desc, m, n) == (void*)NULL ) {
starpu_matrix_data_register(ptrtile, -1,
(uintptr_t) NULL,
BLKLDD(desc, im), tempmm, tempnn, eltsze);
}
else {
starpu_matrix_data_register(ptrtile, STARPU_MAIN_RAM,
(uintptr_t)desc->get_blkaddr(desc, m, n),
BLKLDD(desc, im), tempmm, tempnn, eltsze);
user_ptr = desc->get_blkaddr(desc, m, n);
if ( user_ptr != NULL ) {
home_node = STARPU_MAIN_RAM;
}
}
else {
starpu_matrix_data_register(ptrtile, -1,
(uintptr_t) NULL,
BLKLDD(desc, im), tempmm, tempnn, eltsze);
}
starpu_matrix_data_register(ptrtile, home_node, (uintptr_t) user_ptr,
BLKLDD(desc, im),
tempmm, tempnn, eltsze);
#ifdef HAVE_STARPU_DATA_SET_COORDINATES
starpu_data_set_coordinates(*ptrtile, 2, m, n);
......@@ -362,5 +357,5 @@ void *RUNTIME_desc_getaddr( const MORSE_desc_t *desc, int m, int n )
#endif /* defined(CHAMELEON_USE_MPI) */
}
return (void *)(*ptrtile);
return *ptrtile;
}
......@@ -33,14 +33,14 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
/* Allocate Data */
PASTE_CODE_ALLOCATE_MATRIX_TILE( descA, 1, MORSE_Complex64_t, MorseComplexDouble, LDA, M, N );
PASTE_CODE_ALLOCATE_MATRIX_TILE( descX, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDB, M, NRHS );
PASTE_CODE_ALLOCATE_MATRIX_TILE( descAC, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDA, M, N );
PASTE_CODE_ALLOCATE_MATRIX_TILE( descA0, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDA, M, N );
PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, ( check && M == N ), MORSE_Complex64_t, MorseComplexDouble, LDB, M, NRHS );
MORSE_zplrnt_Tile( descA, 5373 );
/* Save A for check */
if (check == 1 && M == N){
MORSE_zlacpy_Tile(MorseUpperLower, descA, descAC);
MORSE_zlacpy_Tile(MorseUpperLower, descA, descA0);
}
/* Allocate Workspace */
......@@ -63,13 +63,13 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
MORSE_zgeqrs_Tile( descA, descT, descX );
/* Check solution */
dparam[IPARAM_ANORM] = MORSE_zlange_Tile(MorseInfNorm, descAC);
dparam[IPARAM_ANORM] = MORSE_zlange_Tile(MorseInfNorm, descA0);
dparam[IPARAM_BNORM] = MORSE_zlange_Tile(MorseInfNorm, descB);
dparam[IPARAM_XNORM] = MORSE_zlange_Tile(MorseInfNorm, descX);
MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descAC, descX, -1.0, descB );
MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descA0, descX, -1.0, descB );
dparam[IPARAM_RES] = MORSE_zlange_Tile(MorseInfNorm, descB);
PASTE_CODE_FREE_MATRIX( descX )
PASTE_CODE_FREE_MATRIX( descAC )
PASTE_CODE_FREE_MATRIX( descA0 )
PASTE_CODE_FREE_MATRIX( descB )
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment