rocsparse_scsrsm_analysis Interface Reference

rocsparse_scsrsm_analysis Interface Reference#

HIPFORT API Reference: hipfort_rocsparse::rocsparse_scsrsm_analysis Interface Reference
hipfort_rocsparse::rocsparse_scsrsm_analysis Interface Reference

Public Member Functions

integer(kind(rocsparse_status_success)) function rocsparse_scsrsm_analysis_ (handle, trans_a, trans_b, m, nrhs, nnz, alpha, descr, csr_val, csr_row_ptr, csr_col_ind, b, ldb, myinfo, analysis, solve, temp_buffer)
 
integer(kind(rocsparse_status_success)) function rocsparse_scsrsm_analysis_rank_0 (handle, trans_a, trans_b, m, nrhs, nnz, alpha, descr, csr_val, csr_row_ptr, csr_col_ind, b, ldb, myinfo, analysis, solve, temp_buffer)
 
integer(kind(rocsparse_status_success)) function rocsparse_scsrsm_analysis_rank_1 (handle, trans_a, trans_b, m, nrhs, nnz, alpha, descr, csr_val, csr_row_ptr, csr_col_ind, b, ldb, myinfo, analysis, solve, temp_buffer)
 
integer(kind(rocsparse_status_success)) function rocsparse_scsrsm_analysis_full_rank (handle, trans_a, trans_b, m, nrhs, nnz, alpha, descr, csr_val, csr_row_ptr, csr_col_ind, b, ldb, myinfo, analysis, solve, temp_buffer)
 

Detailed Description

rocsparse_csrsm_analysis performs the analysis step for rocsparse_Xcsrsm_solve(). It is expected that this function will be executed only once for a given matrix and particular operation type. The analysis metadata can be cleared by rocsparse_csrsm_clear().

rocsparse_csrsm_analysis can share its meta data with rocsparse_Xcsrilu0_analysis(), rocsparse_Xcsric0_analysis(), and rocsparse_Xcsrsv_analysis(). Selecting rocsparse_analysis_policy_reuse policy can greatly improve computation performance of the metadata. However, the user needs to ensure that the sparsity pattern remains unchanged. If this cannot be assured, rocsparse_analysis_policy_force has to be used.

Note
If the matrix sparsity pattern changes, the gathered information will become invalid.
This function is blocking with respect to the host.
This routine does not support execution in a hipGraph context.
Parameters
[in]handle- handle to the rocSPARSE library context queue.
[in]trans_A- matrix A operation type.
[in]trans_B- matrix B operation type.
[in]m- number of rows of the sparse CSR matrix A.
[in]nrhs- number of columns of the column-oriented dense matrix op(B).
[in]nnz- number of non-zero entries of the sparse CSR matrix A.
[in]alpha- scalar \(\alpha\).
[in]descr- descriptor of the sparse CSR matrix A.
[in]csr_val- array of nnz elements of the sparse CSR matrix A.
[in]csr_row_ptr- array of m+1 elements that point to the start of every row of the sparse CSR matrix A.
[in]csr_col_ind- array of nnz elements containing the column indices of the sparse CSR matrix A.
[in]B- column-oriented dense matrix of dimension m \(\times\) nrhs elements of the rhs matrix B.
[in]ldb- leading dimension of rhs matrix B.
[out]myInfo- structure that holds the information collected during the analysis step.
[in]analysis- rocsparse_analysis_policy_reuse or rocsparse_analysis_policy_force.
[in]solve- rocsparse_solve_policy_auto.
[in]temp_buffer- temporary storage buffer allocated by the user.
Return values
rocsparse_status_successthe operation completed successfully.
rocsparse_status_invalid_handlethe library context was not initialized.
rocsparse_status_invalid_sizem, nrhs, or nnz is invalid.
rocsparse_status_invalid_pointeralpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, info, or temp_buffer pointer is invalid.
rocsparse_status_internal_erroran internal error occurred.
rocsparse_status_not_implementedtrans_A == rocsparse_operation_conjugate_transpose, trans_B == rocsparse_operation_conjugate_transpose, or rocsparse_matrix_type != rocsparse_matrix_type_general.

Member Function/Subroutine Documentation

◆ rocsparse_scsrsm_analysis_()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_scsrsm_analysis::rocsparse_scsrsm_analysis_ ( type(c_ptr), value  handle,
integer(kind(rocsparse_operation_none)), value  trans_a,
integer(kind(rocsparse_operation_none)), value  trans_b,
integer(c_int), value  m,
integer(c_int), value  nrhs,
integer(c_int), value  nnz,
real(c_float)  alpha,
type(c_ptr), value  descr,
type(c_ptr), value  csr_val,
type(c_ptr), value  csr_row_ptr,
type(c_ptr), value  csr_col_ind,
type(c_ptr), value  b,
integer(c_int), value  ldb,
type(c_ptr), value  myinfo,
integer(kind(rocsparse_analysis_policy_reuse)), value  analysis,
integer(kind(rocsparse_solve_policy_auto)), value  solve,
type(c_ptr), value  temp_buffer 
)

◆ rocsparse_scsrsm_analysis_full_rank()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_scsrsm_analysis::rocsparse_scsrsm_analysis_full_rank ( type(c_ptr)  handle,
integer(kind(rocsparse_operation_none))  trans_a,
integer(kind(rocsparse_operation_none))  trans_b,
integer(c_int)  m,
integer(c_int)  nrhs,
integer(c_int)  nnz,
real(c_float)  alpha,
type(c_ptr)  descr,
real(c_float), dimension(:), target  csr_val,
integer(c_int), dimension(:), target  csr_row_ptr,
integer(c_int), dimension(:), target  csr_col_ind,
real(c_float), dimension(:,:), target  b,
integer(c_int)  ldb,
type(c_ptr)  myinfo,
integer(kind(rocsparse_analysis_policy_reuse))  analysis,
integer(kind(rocsparse_solve_policy_auto))  solve,
type(c_ptr)  temp_buffer 
)

◆ rocsparse_scsrsm_analysis_rank_0()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_scsrsm_analysis::rocsparse_scsrsm_analysis_rank_0 ( type(c_ptr)  handle,
integer(kind(rocsparse_operation_none))  trans_a,
integer(kind(rocsparse_operation_none))  trans_b,
integer(c_int)  m,
integer(c_int)  nrhs,
integer(c_int)  nnz,
real(c_float)  alpha,
type(c_ptr)  descr,
real(c_float), target  csr_val,
integer(c_int), target  csr_row_ptr,
integer(c_int), target  csr_col_ind,
real(c_float), target  b,
integer(c_int)  ldb,
type(c_ptr)  myinfo,
integer(kind(rocsparse_analysis_policy_reuse))  analysis,
integer(kind(rocsparse_solve_policy_auto))  solve,
type(c_ptr)  temp_buffer 
)

◆ rocsparse_scsrsm_analysis_rank_1()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_scsrsm_analysis::rocsparse_scsrsm_analysis_rank_1 ( type(c_ptr)  handle,
integer(kind(rocsparse_operation_none))  trans_a,
integer(kind(rocsparse_operation_none))  trans_b,
integer(c_int)  m,
integer(c_int)  nrhs,
integer(c_int)  nnz,
real(c_float)  alpha,
type(c_ptr)  descr,
real(c_float), dimension(:), target  csr_val,
integer(c_int), dimension(:), target  csr_row_ptr,
integer(c_int), dimension(:), target  csr_col_ind,
real(c_float), dimension(:), target  b,
integer(c_int)  ldb,
type(c_ptr)  myinfo,
integer(kind(rocsparse_analysis_policy_reuse))  analysis,
integer(kind(rocsparse_solve_policy_auto))  solve,
type(c_ptr)  temp_buffer 
)

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