diff --git a/include/chameleon/tasks.h b/include/chameleon/tasks.h index 99d70dbade30332f9af8ce5397636f8023a10e24..bf9984ae7261ffe30bbf7e5dcf10478973d6d11e 100644 --- a/include/chameleon/tasks.h +++ b/include/chameleon/tasks.h @@ -35,6 +35,10 @@ BEGIN_C_DECLS */ typedef enum chameleon_tasktype_e { + TASK_MAP_ONE, + TASK_MAP_TWO, + TASK_MAP_THREE, + TASK_GEMM, TASK_HEMM, TASK_HER2K, diff --git a/runtime/starpu/control/runtime_zlocality.c b/runtime/starpu/control/runtime_zlocality.c index 92b47827f3dd65fb63cd7536396b162379d6e7c0..f0c9e375d26133a41e0c28e7df3f05587d338649 100644 --- a/runtime/starpu/control/runtime_zlocality.c +++ b/runtime/starpu/control/runtime_zlocality.c @@ -94,6 +94,10 @@ void RUNTIME_zlocality_allrestrict( uint32_t where ) cl_zunmlq_restrict_where( where ); cl_ztpmlqt_restrict_where( where ); + /* map */ + cl_map_one_restrict_where( where ); + cl_map_two_restrict_where( where ); + cl_map_three_restrict_where( where ); } void RUNTIME_zlocality_onerestrict( cham_tasktype_t kernel, uint32_t where ) @@ -138,11 +142,15 @@ void RUNTIME_zlocality_onerestrict( cham_tasktype_t kernel, uint32_t where ) case TASK_TPMQRT: cl_ztpmqrt_restrict_where( where ); break; /* LQ */ - case TASK_GELQT: cl_zgelqt_restrict_where( where ); break; - case TASK_TPLQT: cl_ztplqt_restrict_where( where ); break; - case TASK_UNMLQ: cl_zunmlq_restrict_where( where ); break; - case TASK_TPMLQT: cl_ztpmlqt_restrict_where( where ); break; - + case TASK_GELQT: cl_zgelqt_restrict_where( where ); break; + case TASK_TPLQT: cl_ztplqt_restrict_where( where ); break; + case TASK_UNMLQ: cl_zunmlq_restrict_where( where ); break; + case TASK_TPMLQT: cl_ztpmlqt_restrict_where( where ); break; + + /* map */ + case TASK_MAP_ONE: cl_map_one_restrict_where( where ); break; + case TASK_MAP_TWO: cl_map_two_restrict_where( where ); break; + case TASK_MAP_THREE: cl_map_three_restrict_where( where ); break; default: return; } @@ -190,6 +198,10 @@ void RUNTIME_zlocality_allrestore( ) cl_zunmlq_restore_where(); cl_ztpmlqt_restore_where(); + /* map */ + cl_map_one_restore_where(); + cl_map_two_restore_where(); + cl_map_three_restore_where(); } void RUNTIME_zlocality_onerestore( cham_tasktype_t kernel ) @@ -231,10 +243,15 @@ void RUNTIME_zlocality_onerestore( cham_tasktype_t kernel ) case TASK_TPMQRT: cl_ztpmqrt_restore_where(); break; /* LQ */ - case TASK_GELQT: cl_zgelqt_restore_where(); break; - case TASK_TPLQT: cl_ztplqt_restore_where(); break; - case TASK_UNMLQ: cl_zunmlq_restore_where(); break; - case TASK_TPMLQT: cl_ztpmlqt_restore_where(); break; + case TASK_GELQT: cl_zgelqt_restore_where(); break; + case TASK_TPLQT: cl_ztplqt_restore_where(); break; + case TASK_UNMLQ: cl_zunmlq_restore_where(); break; + case TASK_TPMLQT: cl_ztpmlqt_restore_where(); break; + + /* map */ + case TASK_MAP_ONE: cl_map_one_restore_where(); break; + case TASK_MAP_TWO: cl_map_two_restore_where(); break; + case TASK_MAP_THREE: cl_map_three_restore_where(); break; default: return; diff --git a/runtime/starpu/include/runtime_codelet_z.h b/runtime/starpu/include/runtime_codelet_z.h index 04dec2b63171d54526eb6bc7dd510464efc5e713..9f67c06f3e2bc0199208cb953363eec5d01965a0 100644 --- a/runtime/starpu/include/runtime_codelet_z.h +++ b/runtime/starpu/include/runtime_codelet_z.h @@ -143,6 +143,11 @@ CODELETS_HEADER(dlag2h); CODELETS_HEADER(hlag2d); #endif +/* map */ +CODELETS_HEADER(map_one); +CODELETS_HEADER(map_two); +CODELETS_HEADER(map_three); + struct cl_zgemm_args_s { cham_trans_t transA; cham_trans_t transB;