diff --git a/control/descriptor.c b/control/descriptor.c index bec07637c288d0db4bc7e8acd4f1d348046586f2..798c97f50dfe7c8945902c7e33a562012261c424 100644 --- a/control/descriptor.c +++ b/control/descriptor.c @@ -151,7 +151,7 @@ MORSE_desc_t morse_desc_init_user(MORSE_enum dtyp, int mb, int nb, int bsiz, desc.occurences = 0; desc.use_mat = 1; desc.alloc_mat = 1; - desc.register_mat = 1; + desc.register_mat = (morse->ncudas > 0) ? 1 : 0; desc.ooc = 0; desc.myrank = RUNTIME_comm_rank( morse ); diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c index 39282f386736479b9b94b472f16e3e673c5d96aa..16308ce3fec54e38bb561a52963b06728b594b05 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -127,6 +127,8 @@ void RUNTIME_desc_create( MORSE_desc_t *desc ) rc = cudaHostRegister( desc->mat, size, cudaHostRegisterPortable ); if ( rc != cudaSuccess ) { + /* Disable the unregister as register failed */ + desc->register_mat = 0; morse_warning("RUNTIME_desc_create(StarPU): cudaHostRegister - ", cudaGetErrorString( rc )); } }