![]() |
MAGMA
2.3.0
Matrix Algebra for GPU and Multicore Architectures
|
Functions | |
magma_int_t | magma_zcustomicsetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Reads in an Incomplete Cholesky preconditioner. More... | |
magma_int_t | magma_zcustomilusetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Reads in an Incomplete LU preconditioner. More... | |
magma_int_t | magma_zparictsetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares the iterative threshold Incomplete Cholesky preconditioner. More... | |
magma_int_t | magma_ziluisaisetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More... | |
magma_int_t | magma_ziluisaisetup_t (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More... | |
magma_int_t | magma_zisai_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Left-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_zisai_r (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Right-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_zisai_l_t (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Left-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_zisai_r_t (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Right-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_ziluisaisetup_lower (magma_z_matrix A, magma_z_matrix S, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More... | |
magma_int_t | magma_ziluisaisetup_upper (magma_z_matrix A, magma_z_matrix S, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More... | |
magma_int_t | magma_zparict (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares the iterative threshold Incomplete Cholesky preconditioner. More... | |
magma_int_t | magma_zparilut (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares the iterative threshold Incomplete LU preconditioner. More... | |
magma_int_t | magma_zicisaisetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares Incomplete Cholesky preconditioner using a sparse approximate inverse instead of sparse triangular solves. More... | |
magma_int_t | magma_zcumilusetup (magma_z_matrix A, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares the ILU preconditioner via the cuSPARSE. More... | |
magma_int_t | magma_zcumilusetup_transpose (magma_z_matrix A, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares the ILU transpose preconditioner via the cuSPARSE. More... | |
magma_int_t | magma_zcumilugeneratesolverinfo (magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares the ILU triangular solves via cuSPARSE using an ILU factorization matrix stored either in precond->M or on the device as precond->L and precond->U. More... | |
magma_int_t | magma_zapplycumilu_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Performs the left triangular solves using the ILU preconditioner. More... | |
magma_int_t | magma_zapplycumilu_l_transpose (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Performs the left triangular solves using the transpose ILU preconditioner. More... | |
magma_int_t | magma_zapplycumilu_r (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Performs the right triangular solves using the ILU preconditioner. More... | |
magma_int_t | magma_zapplycumilu_r_transpose (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Performs the right triangular solves using the transpose ILU preconditioner. More... | |
magma_int_t | magma_zparilusetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue) |
Prepares the ILU preconditioner via the iterative ILU iteration. More... | |
magma_int_t | magma_zapplyiteric_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Performs the left triangular solves using the IC preconditioner via Jacobi. More... | |
magma_int_t | magma_zapplyiteric_r (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue) |
Performs the right triangular solves using the IC preconditioner via Jacobi. More... | |
magma_int_t magma_zcustomicsetup | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Reads in an Incomplete Cholesky preconditioner.
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zcustomilusetup | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Reads in an Incomplete LU preconditioner.
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zparictsetup | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the iterative threshold Incomplete Cholesky preconditioner.
This function requires OpenMP, and is only available if OpenMP is activated.
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_ziluisaisetup | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_ziluisaisetup_t | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
This is the transpose preconditioner setup needed e.g. for BiCG, QMR, LSQR...
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zisai_l | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Left-hand-side application of ISAI preconditioner.
[in] | b | magma_z_matrix input RHS b |
[in,out] | x | magma_z_matrix solution x |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zisai_r | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Right-hand-side application of ISAI preconditioner.
[in] | b | magma_z_matrix input RHS b |
[in,out] | x | magma_z_matrix solution x |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zisai_l_t | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Left-hand-side application of ISAI preconditioner.
Transpose.
[in] | b | magma_z_matrix input RHS b |
[in,out] | x | magma_z_matrix solution x |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zisai_r_t | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Right-hand-side application of ISAI preconditioner.
Transpose.
[in] | b | magma_z_matrix input RHS b |
[in,out] | x | magma_z_matrix solution x |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_ziluisaisetup_lower | ( | magma_z_matrix | A, |
magma_z_matrix | S, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
This routine only handles the lower triangular part.
[in] | A | magma_z_matrix input matrix A |
[in] | S | magma_z_matrix pattern for the ISAI preconditioner |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_ziluisaisetup_upper | ( | magma_z_matrix | A, |
magma_z_matrix | S, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
This routine only handles the upper triangular part.
[in] | A | magma_z_matrix input matrix A |
[in] | S | magma_z_matrix pattern for the ISAI preconditioner |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zparict | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the iterative threshold Incomplete Cholesky preconditioner.
The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.
This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2016.
This function requires OpenMP, and is only available if OpenMP is activated.
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zparilut | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the iterative threshold Incomplete LU preconditioner.
The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.
This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.
This function requires OpenMP, and is only available if OpenMP is activated.
The parameter list is:
precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz constant) precond.rtol : how many candidates are added to the sparsity pattern 1.0 one per row < 1.0 a fraction of those > 1.0 all candidates
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zicisaisetup | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares Incomplete Cholesky preconditioner using a sparse approximate inverse instead of sparse triangular solves.
This is the symmetric variant of zgeisai.cpp.
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zcumilusetup | ( | magma_z_matrix | A, |
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the ILU preconditioner via the cuSPARSE.
[in] | A | magma_z_matrix input matrix A |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zcumilusetup_transpose | ( | magma_z_matrix | A, |
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the ILU transpose preconditioner via the cuSPARSE.
[in] | A | magma_z_matrix input matrix A |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zcumilugeneratesolverinfo | ( | magma_z_preconditioner * | precond, |
magma_queue_t | queue | ||
) |
Prepares the ILU triangular solves via cuSPARSE using an ILU factorization matrix stored either in precond->M or on the device as precond->L and precond->U.
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zapplycumilu_l | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the left triangular solves using the ILU preconditioner.
[in] | b | magma_z_matrix RHS |
[in,out] | x | magma_z_matrix* vector to precondition |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zapplycumilu_l_transpose | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the left triangular solves using the transpose ILU preconditioner.
[in] | b | magma_z_matrix RHS |
[in,out] | x | magma_z_matrix* vector to precondition |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zapplycumilu_r | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the right triangular solves using the ILU preconditioner.
[in] | b | magma_z_matrix RHS |
[in,out] | x | magma_z_matrix* vector to precondition |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zapplycumilu_r_transpose | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the right triangular solves using the transpose ILU preconditioner.
[in] | b | magma_z_matrix RHS |
[in,out] | x | magma_z_matrix* vector to precondition |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zparilusetup | ( | magma_z_matrix | A, |
magma_z_matrix | b, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the ILU preconditioner via the iterative ILU iteration.
[in] | A | magma_z_matrix input matrix A |
[in] | b | magma_z_matrix input RHS b |
[in,out] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zapplyiteric_l | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the left triangular solves using the IC preconditioner via Jacobi.
[in] | b | magma_z_matrix RHS |
[out] | x | magma_z_matrix* vector to precondition |
[in] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_zapplyiteric_r | ( | magma_z_matrix | b, |
magma_z_matrix * | x, | ||
magma_z_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the right triangular solves using the IC preconditioner via Jacobi.
[in] | b | magma_z_matrix RHS |
[out] | x | magma_z_matrix* vector to precondition |
[in] | precond | magma_z_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |