From 39da035dc58df07ca59054a4bd4ff3ae0dce1587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Bouteiller?= Date: Thu, 11 May 2023 17:39:15 -0400 Subject: [PATCH] Update zgeqrf to the new recursive API in parsec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Bouteiller --- src/zgeqrf.jdf | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/zgeqrf.jdf b/src/zgeqrf.jdf index 103362b0..cad39d96 100644 --- a/src/zgeqrf.jdf +++ b/src/zgeqrf.jdf @@ -15,6 +15,10 @@ extern "C" %{ #include "parsec/data_dist/matrix/subtile.h" #include "parsec/recursive.h" +static void zgeqrt_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data); +static void zunmqr_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data); +static void ztsqrt_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data); +static void ztsmqr_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data); #if defined(DPLASMA_HAVE_CUDA) #include "cores/dplasma_zcores.h" @@ -150,7 +154,7 @@ BODY [type=RECURSIVE] /* recursive call */ parsec_recursivecall((parsec_task_t*)this_task, - parsec_zgeqrt, dplasma_zgeqrfr_geqrt_Destruct, + parsec_zgeqrt, zgeqrt_recursive_cb, 2, small_descA, small_descT); return PARSEC_HOOK_RETURN_ASYNC; @@ -246,7 +250,7 @@ BODY [type=RECURSIVE] /* recursive call */ parsec_recursivecall((parsec_task_t*)this_task, - parsec_zunmqr_panel, dplasma_zgeqrfr_unmqr_Destruct, + parsec_zunmqr_panel, zunmqr_recursive_cb, 3, small_descA, small_descC, small_descT); return PARSEC_HOOK_RETURN_ASYNC; @@ -374,7 +378,7 @@ BODY [type=RECURSIVE] /* recursive call */ parsec_recursivecall((parsec_task_t*)this_task, - parsec_ztsqrt, dplasma_zgeqrfr_tsqrt_Destruct, + parsec_ztsqrt, ztsqrt_recursive_cb, 3, small_descA1, small_descA2, small_descT); return PARSEC_HOOK_RETURN_ASYNC; @@ -542,7 +546,7 @@ BODY [type=RECURSIVE] /* recursive call */ parsec_recursivecall((parsec_task_t*)this_task, - parsec_ztsmqr, dplasma_zgeqrfr_tsmqr_Destruct, + parsec_ztsmqr, ztsmqr_recursive_cb, 4, small_descA1, small_descA2, small_descV, small_descT); return PARSEC_HOOK_RETURN_ASYNC; @@ -580,3 +584,22 @@ BODY } END + +extern "C" %{ +static void zgeqrt_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data) { + (void)data; + dplasma_zgeqrfr_geqrt_Destruct(tp); +} +static void zunmqr_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data) { + (void)data; + dplasma_zgeqrfr_unmqr_Destruct(tp); +} +static void ztsqrt_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data) { + (void)data; + dplasma_zgeqrfr_tsqrt_Destruct(tp); +} +static void ztsmqr_recursive_cb(parsec_taskpool_t* tp, const parsec_recursive_callback_t* data) { + (void)data; + dplasma_zgeqrfr_tsmqr_Destruct(tp); +} +%}