Mentions légales du service

Skip to content
Snippets Groups Projects

ooc: Only require page alignment when using o_direct backend

Merged THIBAULT Samuel requested to merge thibault/chameleon:master into master
1 file
+ 16
12
Compare changes
  • Side-by-side
  • Inline
@@ -175,18 +175,22 @@ void RUNTIME_desc_create( CHAM_desc_t *desc )
@@ -175,18 +175,22 @@ void RUNTIME_desc_create( CHAM_desc_t *desc )
#endif
#endif
if (desc->ooc) {
if (desc->ooc) {
int lastmm = desc->lm - (desc->lmt-1) * desc->mb;
char *backend = getenv("STARPU_DISK_SWAP_BACKEND");
int lastnn = desc->ln - (desc->lnt-1) * desc->nb;
int64_t eltsze = CHAMELEON_Element_Size(desc->dtyp);
if (backend && strcmp(backend, "unistd_o_direct") == 0) {
int pagesize = getpagesize();
int lastmm = desc->lm - (desc->lmt-1) * desc->mb;
int lastnn = desc->ln - (desc->lnt-1) * desc->nb;
if ( ((desc->mb * desc->nb * eltsze) % pagesize != 0) ||
int64_t eltsze = CHAMELEON_Element_Size(desc->dtyp);
((lastmm * desc->nb * eltsze) % pagesize != 0) ||
int pagesize = getpagesize();
((desc->mb * lastnn * eltsze) % pagesize != 0) ||
((lastmm * lastnn * eltsze) % pagesize != 0) )
if ( ((desc->mb * desc->nb * eltsze) % pagesize != 0) ||
{
((lastmm * desc->nb * eltsze) % pagesize != 0) ||
chameleon_error("RUNTIME_desc_create", "Matrix and tile size not suitable for out-of-core: all tiles have to be multiples of 4096. Tip : choose 'n' and 'nb' as both multiples of 32.");
((desc->mb * lastnn * eltsze) % pagesize != 0) ||
return;
((lastmm * lastnn * eltsze) % pagesize != 0) )
 
{
 
chameleon_error("RUNTIME_desc_create", "Matrix and tile size not suitable for out-of-core: all tiles have to be multiples of the system page size. Tip : choose 'n' and 'nb' as both multiples of 32.");
 
return;
 
}
}
}
}
}
Loading