From a3d1533fddcb630afde4a3b9530ec02f5c18e581 Mon Sep 17 00:00:00 2001 From: Matthieu KUHN <bkuhnm@l0.spartan.bench.local> Date: Fri, 1 Apr 2022 13:33:50 +0200 Subject: [PATCH] getrf_nopiv: Call the option structure alloc/free functions in the getrf nopiv and gesv nopiv functions to switch from initial algorithm to the one with explicit communication management --- compute/pzgetrf_nopiv.c | 18 +++++++++++++----- compute/zgesv_nopiv.c | 11 ++++++----- compute/zgetrf_nopiv.c | 4 ++-- control/compute_z.h | 2 +- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/compute/pzgetrf_nopiv.c b/compute/pzgetrf_nopiv.c index daac4bad9..fe5bdaeec 100644 --- a/compute/pzgetrf_nopiv.c +++ b/compute/pzgetrf_nopiv.c @@ -11,7 +11,7 @@ * * @brief Chameleon zgetrf_nopiv parallel algorithm * - * @version 1.2.0 + * @version 1.3.0 * @author Omar Zenati * @author Mathieu Faverge * @author Emmanuel Agullo @@ -20,7 +20,7 @@ * @author Samuel Thibault * @author Terry Cojean * @author Matthieu Kuhn - * @date 2022-02-22 + * @date 2024-10-17 * @precisions normal z -> s d c * */ @@ -31,9 +31,9 @@ /** * Parallel tile LU factorization with no pivoting - dynamic scheduling */ -void chameleon_pzgetrf_nopiv( CHAM_desc_t *A, - RUNTIME_sequence_t *sequence, - RUNTIME_request_t *request ) +void chameleon_pzgetrf_nopiv_generic( CHAM_desc_t *A, + RUNTIME_sequence_t *sequence, + RUNTIME_request_t *request ) { CHAM_context_t *chamctxt; RUNTIME_option_t options; @@ -121,3 +121,11 @@ void chameleon_pzgetrf_nopiv( CHAM_desc_t *A, RUNTIME_options_finalize(&options, chamctxt); } + +void chameleon_pzgetrf_nopiv( struct chameleon_pzgetrf_nopiv_s *ws, + CHAM_desc_t *A, + RUNTIME_sequence_t *sequence, + RUNTIME_request_t *request ) +{ + chameleon_pzgetrf_nopiv_generic( A, sequence, request ); +} diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c index c7c703a45..3ad6b0c25 100644 --- a/compute/zgesv_nopiv.c +++ b/compute/zgesv_nopiv.c @@ -11,7 +11,7 @@ * * @brief Chameleon zgesv_nopiv wrappers * - * @version 1.2.0 + * @version 1.3.0 * @comment This file has been automatically generated * from Plasma 2.5.0 for CHAMELEON 0.9.2 * @author Jakub Kurzak @@ -19,7 +19,8 @@ * @author Emmanuel Agullo * @author Cedric Castagnede * @author Florent Pruvost - * @date 2022-02-22 + * @author Matthieu Kuhn + * @date 2024-10-17 * @precisions normal z -> s d c * */ @@ -82,8 +83,8 @@ * */ int CHAMELEON_zgesv_nopiv( int N, int NRHS, - CHAMELEON_Complex64_t *A, int LDA, - CHAMELEON_Complex64_t *B, int LDB ) + CHAMELEON_Complex64_t *A, int LDA, + CHAMELEON_Complex64_t *B, int LDB ) { int NB; int status; @@ -294,7 +295,7 @@ int CHAMELEON_zgesv_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B, return CHAMELEON_SUCCESS; */ - chameleon_pzgetrf_nopiv( A, sequence, request ); + chameleon_pzgetrf_nopiv( NULL, A, sequence, request ); chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request ); diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c index 07ebfa2e9..1f4534914 100644 --- a/compute/zgetrf_nopiv.c +++ b/compute/zgetrf_nopiv.c @@ -159,7 +159,7 @@ void CHAMELEON_zgetrf_nopiv_WS_Free( void *user_ws ) * */ int CHAMELEON_zgetrf_nopiv( int M, int N, - CHAMELEON_Complex64_t *A, int LDA ) + CHAMELEON_Complex64_t *A, int LDA ) { int NB; int status; @@ -353,7 +353,7 @@ int CHAMELEON_zgetrf_nopiv_Tile_Async( CHAM_desc_t *A, return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); } - chameleon_pzgetrf_nopiv( A, sequence, request ); + chameleon_pzgetrf_nopiv( NULL, A, sequence, request ); return CHAMELEON_SUCCESS; } diff --git a/control/compute_z.h b/control/compute_z.h index 12ec9e909..c0bac9755 100644 --- a/control/compute_z.h +++ b/control/compute_z.h @@ -146,7 +146,7 @@ void chameleon_pzgeqrf( int genD, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D void chameleon_pzgeqrfrh( int genD, int BS, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); void chameleon_pzgetrf( struct chameleon_pzgetrf_s *ws, CHAM_desc_t *A, CHAM_ipiv_t *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); void chameleon_pzgetrf_incpiv(CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); -void chameleon_pzgetrf_nopiv(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); +void chameleon_pzgetrf_nopiv(struct chameleon_pzgetrf_nopiv_s *ws, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); void chameleon_pzgetrf_reclap(CHAM_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); void chameleon_pzgetrf_rectil(CHAM_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); void chameleon_pzhegst(int itype, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); -- GitLab