Commit 3b3e6922 authored by Mathieu Faverge's avatar Mathieu Faverge

Merge branch 'hotfix' into 'master'

Hotfix

See merge request !49
parents 46e50014 77a80aeb
......@@ -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 )
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment