From 9eac76feca2bcf9c765c33cce2c43e5db567250a Mon Sep 17 00:00:00 2001 From: Matteo Marcos <matteo.marcos@inria.fr> Date: Wed, 19 Mar 2025 11:04:28 +0100 Subject: [PATCH] getrf : update prototypes for new codelets --- compute/pzgetrf.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/compute/pzgetrf.c b/compute/pzgetrf.c index 9a6ba171a..448bb4309 100644 --- a/compute/pzgetrf.c +++ b/compute/pzgetrf.c @@ -17,7 +17,8 @@ * @author Emmanuel Agullo * @author Matthieu Kuhn * @author Alycia Lisito - * @date 2025-01-24 + * @author Matteo Marcos + * @date 2025-03-24 * @precisions normal z -> s d c * */ @@ -154,7 +155,7 @@ chameleon_pzgetrf_panel_facto_percol( struct chameleon_pzgetrf_s *ws, } /* Flush temporary data used for the pivoting */ - INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, ipiv, k ); + INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, 0, A->m, ipiv, k ); RUNTIME_ipiv_flushk( options->sequence, ipiv, A->myrank ); } @@ -202,7 +203,7 @@ chameleon_pzgetrf_panel_facto_percol_batched( struct chameleon_pzgetrf_s *ws, free( clargs ); /* Flush temporary data used for the pivoting */ - INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, ipiv, k ); + INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, 0, A->m, ipiv, k ); RUNTIME_ipiv_flushk( options->sequence, ipiv, A->myrank ); } @@ -264,7 +265,7 @@ chameleon_pzgetrf_panel_facto_blocked( struct chameleon_pzgetrf_s *ws, RUNTIME_data_flush( options->sequence, Up(k, k) ); /* Flush temporary data used for the pivoting */ - INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, ipiv, k ); + INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, 0, A->m, ipiv, k ); RUNTIME_ipiv_flushk( options->sequence, ipiv, A->myrank ); } @@ -327,7 +328,7 @@ chameleon_pzgetrf_panel_facto_blocked_batched( struct chameleon_pzgetrf_s *ws, free( clargs ); /* Flush temporary data used for the pivoting */ - INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, ipiv, k ); + INSERT_TASK_ipiv_to_perm( options, k * A->mb, tempkm, minmn, 0, A->m, ipiv, k ); RUNTIME_ipiv_flushk( options->sequence, ipiv, A->myrank ); } @@ -410,19 +411,19 @@ chameleon_pzgetrf_panel_permute( struct chameleon_pzgetrf_s *ws, * perm array is made of size tempkm for the first row especially. * Otherwise, the final copy back to the tile may copy only a partial tile */ - INSERT_TASK_zlaswp_get( options, k*A->mb, tempkm, + INSERT_TASK_zlaswp_get( options, ChamDirForward, k*A->mb, tempkm, ipiv, k, A(k, n), Wu(A->myrank, n) ); for(m=k+1; m<A->mt; m++){ /* Extract selected rows into A(k, n) */ - INSERT_TASK_zlaswp_get( options, m*A->mb, minmn, + INSERT_TASK_zlaswp_get( options, ChamDirForward, m*A->mb, minmn, ipiv, k, A(m, n), Wu(A->myrank, n) ); /* Copy rows from A(k,n) into their final position */ - INSERT_TASK_zlaswp_set( options, m*A->mb, minmn, + INSERT_TASK_zlaswp_set( options, ChamDirForward, m*A->mb, minmn, ipiv, k, A(k, n), A(m, n) ); } - INSERT_TASK_zperm_allreduce( options, A, Wu(A->myrank, n), ipiv, k, k, n, ws ); + INSERT_TASK_zperm_allreduce( options, ChamDirForward, A, Wu(A->myrank, n), ipiv, k, k, n, ws ); } break; default: @@ -465,7 +466,7 @@ chameleon_pzgetrf_panel_permute_batched( struct chameleon_pzgetrf_s *ws, * perm array is made of size tempkm for the first row especially. * Otherwise, the final copy back to the tile may copy only a partial tile */ - INSERT_TASK_zlaswp_get( options, k*A->mb, tempkm, + INSERT_TASK_zlaswp_get( options, ChamDirForward, k*A->mb, tempkm, ipiv, k, A(k, n), Wu(A->myrank, n) ); for(m=k+1; m<A->mt; m++){ @@ -474,7 +475,7 @@ chameleon_pzgetrf_panel_permute_batched( struct chameleon_pzgetrf_s *ws, } INSERT_TASK_zlaswp_batched_flush( options, ipiv, k, A(k, n), Wu(A->myrank, n), clargs ); - INSERT_TASK_zperm_allreduce( options, A, Wu(A->myrank, n), ipiv, k, k, n, ws ); + INSERT_TASK_zperm_allreduce( options, ChamDirForward, A, Wu(A->myrank, n), ipiv, k, k, n, ws ); free( clargs ); } @@ -495,8 +496,8 @@ chameleon_pzgetrf_panel_permute_forward( struct chameleon_pzgetrf_s *ws, #if defined(CHAMELEON_USE_MPI) chameleon_get_proc_involved_in_panelk_2dbc( A, k, n, ws ); if ( A->myrank == chameleon_getrankof_2d( A, k, k ) ) { - INSERT_TASK_zperm_allreduce_send_perm( options, ipiv, k, A->myrank, ws->np_involved, ws->proc_involved ); - INSERT_TASK_zperm_allreduce_send_invp( options, ipiv, k, A, k, n ); + INSERT_TASK_zperm_allreduce_send_perm( options, ChamDirForward, ipiv, k, A->myrank, ws->np_involved, ws->proc_involved ); + INSERT_TASK_zperm_allreduce_send_invp( options, ChamDirForward, ipiv, k, A, k, n ); } if ( A->myrank == chameleon_getrankof_2d( A, k, n ) ) { INSERT_TASK_zperm_allreduce_send_A( options, A, k, n, A->myrank, ws->np_involved, ws->proc_involved ); @@ -529,8 +530,8 @@ chameleon_pzgetrf_panel_permute_backward( struct chameleon_pzgetrf_s *ws, #if defined(CHAMELEON_USE_MPI) chameleon_get_proc_involved_in_panelk_2dbc( A, k, n, ws ); if ( A->myrank == chameleon_getrankof_2d( A, k, k ) ) { - INSERT_TASK_zperm_allreduce_send_perm( options, ipiv, k, A->myrank, ws->np_involved, ws->proc_involved ); - INSERT_TASK_zperm_allreduce_send_invp( options, ipiv, k, A, k, n ); + INSERT_TASK_zperm_allreduce_send_perm( options, ChamDirForward, ipiv, k, A->myrank, ws->np_involved, ws->proc_involved ); + INSERT_TASK_zperm_allreduce_send_invp( options, ChamDirForward, ipiv, k, A, k, n ); } if ( A->myrank == chameleon_getrankof_2d( A, k, n ) ) { INSERT_TASK_zperm_allreduce_send_A( options, A, k, n, A->myrank, ws->np_involved, ws->proc_involved ); -- GitLab