Mentions légales du service

Skip to content
Snippets Groups Projects
Commit a3d1533f authored by Matthieu KUHN's avatar Matthieu KUHN Committed by Mathieu Faverge
Browse files

getrf_nopiv: Call the option structure alloc/free functions in the getrf nopiv...

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
parent 61dbad0e
No related branches found
No related tags found
1 merge request!307GETRF NOPIV: Use explicit workspaces to control the communication flow
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* *
* @brief Chameleon zgetrf_nopiv parallel algorithm * @brief Chameleon zgetrf_nopiv parallel algorithm
* *
* @version 1.2.0 * @version 1.3.0
* @author Omar Zenati * @author Omar Zenati
* @author Mathieu Faverge * @author Mathieu Faverge
* @author Emmanuel Agullo * @author Emmanuel Agullo
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* @author Samuel Thibault * @author Samuel Thibault
* @author Terry Cojean * @author Terry Cojean
* @author Matthieu Kuhn * @author Matthieu Kuhn
* @date 2022-02-22 * @date 2024-10-17
* @precisions normal z -> s d c * @precisions normal z -> s d c
* *
*/ */
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
/** /**
* Parallel tile LU factorization with no pivoting - dynamic scheduling * Parallel tile LU factorization with no pivoting - dynamic scheduling
*/ */
void chameleon_pzgetrf_nopiv( CHAM_desc_t *A, void chameleon_pzgetrf_nopiv_generic( CHAM_desc_t *A,
RUNTIME_sequence_t *sequence, RUNTIME_sequence_t *sequence,
RUNTIME_request_t *request ) RUNTIME_request_t *request )
{ {
CHAM_context_t *chamctxt; CHAM_context_t *chamctxt;
RUNTIME_option_t options; RUNTIME_option_t options;
...@@ -121,3 +121,11 @@ void chameleon_pzgetrf_nopiv( CHAM_desc_t *A, ...@@ -121,3 +121,11 @@ void chameleon_pzgetrf_nopiv( CHAM_desc_t *A,
RUNTIME_options_finalize(&options, chamctxt); 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 );
}
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* *
* @brief Chameleon zgesv_nopiv wrappers * @brief Chameleon zgesv_nopiv wrappers
* *
* @version 1.2.0 * @version 1.3.0
* @comment This file has been automatically generated * @comment This file has been automatically generated
* from Plasma 2.5.0 for CHAMELEON 0.9.2 * from Plasma 2.5.0 for CHAMELEON 0.9.2
* @author Jakub Kurzak * @author Jakub Kurzak
...@@ -19,7 +19,8 @@ ...@@ -19,7 +19,8 @@
* @author Emmanuel Agullo * @author Emmanuel Agullo
* @author Cedric Castagnede * @author Cedric Castagnede
* @author Florent Pruvost * @author Florent Pruvost
* @date 2022-02-22 * @author Matthieu Kuhn
* @date 2024-10-17
* @precisions normal z -> s d c * @precisions normal z -> s d c
* *
*/ */
...@@ -82,8 +83,8 @@ ...@@ -82,8 +83,8 @@
* *
*/ */
int CHAMELEON_zgesv_nopiv( int N, int NRHS, int CHAMELEON_zgesv_nopiv( int N, int NRHS,
CHAMELEON_Complex64_t *A, int LDA, CHAMELEON_Complex64_t *A, int LDA,
CHAMELEON_Complex64_t *B, int LDB ) CHAMELEON_Complex64_t *B, int LDB )
{ {
int NB; int NB;
int status; int status;
...@@ -294,7 +295,7 @@ int CHAMELEON_zgesv_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B, ...@@ -294,7 +295,7 @@ int CHAMELEON_zgesv_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B,
return CHAMELEON_SUCCESS; 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 ); chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
......
...@@ -159,7 +159,7 @@ void CHAMELEON_zgetrf_nopiv_WS_Free( void *user_ws ) ...@@ -159,7 +159,7 @@ void CHAMELEON_zgetrf_nopiv_WS_Free( void *user_ws )
* *
*/ */
int CHAMELEON_zgetrf_nopiv( int M, int N, int CHAMELEON_zgetrf_nopiv( int M, int N,
CHAMELEON_Complex64_t *A, int LDA ) CHAMELEON_Complex64_t *A, int LDA )
{ {
int NB; int NB;
int status; int status;
...@@ -353,7 +353,7 @@ int CHAMELEON_zgetrf_nopiv_Tile_Async( CHAM_desc_t *A, ...@@ -353,7 +353,7 @@ int CHAMELEON_zgetrf_nopiv_Tile_Async( CHAM_desc_t *A,
return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); 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; return CHAMELEON_SUCCESS;
} }
...@@ -146,7 +146,7 @@ void chameleon_pzgeqrf( int genD, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D ...@@ -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_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( 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_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_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_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); 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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment