![]() |
MAGMA
2.2.0
Matrix Algebra for GPU and Multicore Architectures
|
Functions | |
magma_int_t | magma_scustomicsetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue) |
Reads in an Incomplete Cholesky preconditioner. More... | |
magma_int_t | magma_scustomilusetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue) |
Reads in an Incomplete LU preconditioner. More... | |
magma_int_t | magma_siluisaisetup (magma_s_matrix A, magma_s_matrix b, magma_s_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_siluisaisetup_t (magma_s_matrix A, magma_s_matrix b, magma_s_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_sisai_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Left-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_sisai_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Right-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_sisai_l_t (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Left-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_sisai_r_t (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Right-hand-side application of ISAI preconditioner. More... | |
magma_int_t | magma_sparilutsetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue) |
Prepares the iterative threshold Incomplete LU preconditioner. More... | |
magma_int_t | magma_sicisaisetup (magma_s_matrix A, magma_s_matrix b, magma_s_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_scumilusetup (magma_s_matrix A, magma_s_preconditioner *precond, magma_queue_t queue) |
Prepares the ILU preconditioner via the cuSPARSE. More... | |
magma_int_t | magma_scumilusetup_transpose (magma_s_matrix A, magma_s_preconditioner *precond, magma_queue_t queue) |
Prepares the ILU transpose preconditioner via the cuSPARSE. More... | |
magma_int_t | magma_scumilugeneratesolverinfo (magma_s_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_sapplycumilu_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Performs the left triangular solves using the ILU preconditioner. More... | |
magma_int_t | magma_sapplycumilu_l_transpose (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Performs the left triangular solves using the transpose ILU preconditioner. More... | |
magma_int_t | magma_sapplycumilu_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Performs the right triangular solves using the ILU preconditioner. More... | |
magma_int_t | magma_sapplycumilu_r_transpose (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Performs the right triangular solves using the transpose ILU preconditioner. More... | |
magma_int_t | magma_sparilusetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue) |
Prepares the ILU preconditioner via the iterative ILU iteration. More... | |
magma_int_t | magma_sapplyiteric_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Performs the left triangular solves using the IC preconditioner via Jacobi. More... | |
magma_int_t | magma_sapplyiteric_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue) |
Performs the right triangular solves using the IC preconditioner via Jacobi. More... | |
magma_int_t magma_scustomicsetup | ( | magma_s_matrix | A, |
magma_s_matrix | b, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Reads in an Incomplete Cholesky preconditioner.
[in] | A | magma_s_matrix input matrix A |
[in] | b | magma_s_matrix input RHS b |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_scustomilusetup | ( | magma_s_matrix | A, |
magma_s_matrix | b, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Reads in an Incomplete LU preconditioner.
[in] | A | magma_s_matrix input matrix A |
[in] | b | magma_s_matrix input RHS b |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_siluisaisetup | ( | magma_s_matrix | A, |
magma_s_matrix | b, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
[in] | A | magma_s_matrix input matrix A |
[in] | b | magma_s_matrix input RHS b |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_siluisaisetup_t | ( | magma_s_matrix | A, |
magma_s_matrix | b, | ||
magma_s_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_s_matrix input matrix A |
[in] | b | magma_s_matrix input RHS b |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sisai_l | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Left-hand-side application of ISAI preconditioner.
[in] | b | magma_s_matrix input RHS b |
[in,out] | x | magma_s_matrix solution x |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sisai_r | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Right-hand-side application of ISAI preconditioner.
[in] | b | magma_s_matrix input RHS b |
[in,out] | x | magma_s_matrix solution x |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sisai_l_t | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Left-hand-side application of ISAI preconditioner.
Transpose.
[in] | b | magma_s_matrix input RHS b |
[in,out] | x | magma_s_matrix solution x |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sisai_r_t | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Right-hand-side application of ISAI preconditioner.
Transpose.
[in] | b | magma_s_matrix input RHS b |
[in,out] | x | magma_s_matrix solution x |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sparilutsetup | ( | magma_s_matrix | A, |
magma_s_matrix | b, | ||
magma_s_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 2016.
This function requires OpenMP, and is only available if OpenMP is activated.
[in] | A | magma_s_matrix input matrix A |
[in] | b | magma_s_matrix input RHS b |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sicisaisetup | ( | magma_s_matrix | A, |
magma_s_matrix | b, | ||
magma_s_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 sgeisai.cpp.
[in] | A | magma_s_matrix input matrix A |
[in] | b | magma_s_matrix input RHS b |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_scumilusetup | ( | magma_s_matrix | A, |
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the ILU preconditioner via the cuSPARSE.
[in] | A | magma_s_matrix input matrix A |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_scumilusetup_transpose | ( | magma_s_matrix | A, |
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the ILU transpose preconditioner via the cuSPARSE.
[in] | A | magma_s_matrix input matrix A |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_scumilugeneratesolverinfo | ( | magma_s_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_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sapplycumilu_l | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the left triangular solves using the ILU preconditioner.
[in] | b | magma_s_matrix RHS |
[in,out] | x | magma_s_matrix* vector to precondition |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sapplycumilu_l_transpose | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the left triangular solves using the transpose ILU preconditioner.
[in] | b | magma_s_matrix RHS |
[in,out] | x | magma_s_matrix* vector to precondition |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sapplycumilu_r | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the right triangular solves using the ILU preconditioner.
[in] | b | magma_s_matrix RHS |
[in,out] | x | magma_s_matrix* vector to precondition |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sapplycumilu_r_transpose | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the right triangular solves using the transpose ILU preconditioner.
[in] | b | magma_s_matrix RHS |
[in,out] | x | magma_s_matrix* vector to precondition |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sparilusetup | ( | magma_s_matrix | A, |
magma_s_matrix | b, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Prepares the ILU preconditioner via the iterative ILU iteration.
[in] | A | magma_s_matrix input matrix A |
[in] | b | magma_s_matrix input RHS b |
[in,out] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sapplyiteric_l | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the left triangular solves using the IC preconditioner via Jacobi.
[in] | b | magma_s_matrix RHS |
[out] | x | magma_s_matrix* vector to precondition |
[in] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |
magma_int_t magma_sapplyiteric_r | ( | magma_s_matrix | b, |
magma_s_matrix * | x, | ||
magma_s_preconditioner * | precond, | ||
magma_queue_t | queue | ||
) |
Performs the right triangular solves using the IC preconditioner via Jacobi.
[in] | b | magma_s_matrix RHS |
[out] | x | magma_s_matrix* vector to precondition |
[in] | precond | magma_s_preconditioner* preconditioner parameters |
[in] | queue | magma_queue_t Queue to execute in. |