rocsolver_sgetf2_batched Interface Reference

rocsolver_sgetf2_batched Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_sgetf2_batched Interface Reference
hipfort_rocsolver::rocsolver_sgetf2_batched Interface Reference

The GETF2_BATCHED functions compute the LU factorization of a batch of general m-by-n matrices using partial pivoting with row interchanges. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_sgetf2_batched_ (handle, m, n, a, lda, ipiv, stridep, myinfo, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_sgetf2_batched_rank_0 (handle, m, n, a, lda, ipiv, stridep, myinfo, batch_count)
 
integer(kind(rocblas_status_success)) function rocsolver_sgetf2_batched_rank_1 (handle, m, n, a, lda, ipiv, stridep, myinfo, batch_count)
 

Detailed Description

The GETF2_BATCHED functions compute the LU factorization of a batch of general m-by-n matrices using partial pivoting with row interchanges.

(This is the unblocked Level-2-BLAS version of the algorithm. An optimized internal implementation without rocBLAS calls could be executed with small and mid-size matrices if optimizations are enabled (default option). For more details, see the "rocSOLVER performance tuning" guide.)

The factorization of matrix \(A_l\) in the batch has the form

\[ A_l = P_l L_l U_l \]

where \(P_l\) is a permutation matrix, \(L_l\) is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and \(U_l\) is upper triangular (upper trapezoidal if m < n).

Parameters
[in]handle- rocblas_handle.
[in]m- rocblas_int. m >= 0. The number of rows of all matrices A_l in the batch.
[in]n- rocblas_int. n >= 0. The number of columns of all matrices A_l in the batch.
[in,out]A- array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n. On entry, the m-by-n matrices A_l to be factored. On exit, the factors L_l and U_l from the factorizations. The unit diagonal elements of L_l are not stored.
[in]lda- rocblas_int. lda >= m. Specifies the leading dimension of matrices A_l.
[out]ipiv- pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP). Contains the vectors of pivot indices ipiv_l (corresponding to A_l). Dimension of ipiv_l is min(m,n). Elements of ipiv_l are 1-based indices. For each instance A_l in the batch and for 1 <= i <= min(m,n), row i of the matrix A_l was interchanged with row ipiv_l[i]. Matrix P_l of the factorization can be derived from ipiv_l.
[in]strideP- rocblas_stride. Stride from the start of one vector ipiv_l to the next one ipiv_(l+1). There is no restriction for the value of strideP. The normal use case is strideP >= min(m,n).
[out]myInfo- pointer to rocblas_int. Array of batch_count integers on the GPU. If info[l] = 0, successful exit for factorization of A_l. If info[l] = i > 0, U_l is singular. U_l[i,i] is the first zero pivot.
[in]batch_count- rocblas_int. batch_count >= 0. Number of matrices in the batch.

Member Function/Subroutine Documentation

◆ rocsolver_sgetf2_batched_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgetf2_batched::rocsolver_sgetf2_batched_ ( type(c_ptr), value  handle,
integer(c_int), value  m,
integer(c_int), value  n,
type(c_ptr), value  a,
integer(c_int), value  lda,
type(c_ptr), value  ipiv,
integer(c_int64_t), value  stridep,
type(c_ptr), value  myinfo,
integer(c_int), value  batch_count 
)

◆ rocsolver_sgetf2_batched_rank_0()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgetf2_batched::rocsolver_sgetf2_batched_rank_0 ( type(c_ptr)  handle,
integer(c_int)  m,
integer(c_int)  n,
type(c_ptr)  a,
integer(c_int)  lda,
integer(c_int), target  ipiv,
integer(c_int64_t)  stridep,
type(c_ptr)  myinfo,
integer(c_int)  batch_count 
)

◆ rocsolver_sgetf2_batched_rank_1()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgetf2_batched::rocsolver_sgetf2_batched_rank_1 ( type(c_ptr)  handle,
integer(c_int)  m,
integer(c_int)  n,
type(c_ptr)  a,
integer(c_int)  lda,
integer(c_int), dimension(:), target  ipiv,
integer(c_int64_t)  stridep,
type(c_ptr)  myinfo,
integer(c_int)  batch_count 
)

The documentation for this interface was generated from the following file: