rocsparse_scsrsm_analysis Interface Reference#
hipfort_rocsparse::rocsparse_scsrsm_analysis Interface Reference
Public Member Functions | |
| integer(c_int) 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_typed (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 nnzelements of the sparse CSR matrix A.[in] csr_row_ptr - array of m+1elements that point to the start of every row of the sparse CSR matrix A.[in] csr_col_ind - array of nnzelements containing the column indices of the sparse CSR matrix A.[in] B - column-oriented dense matrix of dimension m\(\times\)nrhselements 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_reuseorrocsparse_analysis_policy_force.[in] solve - rocsparse_solve_policy_auto.[in] temp_buffer - temporary storage buffer allocated by the user.
- Return values
-
rocsparse_status_success the operation completed successfully. rocsparse_status_invalid_handle the library context was not initialized. rocsparse_status_invalid_size m,nrhs, ornnzis invalid.rocsparse_status_invalid_pointer alpha,descr,csr_val,csr_row_ptr,csr_col_ind,B,info, ortemp_bufferpointer is invalid.rocsparse_status_internal_error an internal error occurred. rocsparse_status_not_implemented trans_A==rocsparse_operation_conjugate_transpose,trans_B==rocsparse_operation_conjugate_transpose, orrocsparse_matrix_type!=rocsparse_matrix_type_general.
Member Function/Subroutine Documentation
◆ rocsparse_scsrsm_analysis_()
| integer(c_int) function hipfort_rocsparse::rocsparse_scsrsm_analysis::rocsparse_scsrsm_analysis_ | ( | type(c_ptr), value | handle, |
| integer(c_int), value | trans_a, | ||
| integer(c_int), value | trans_b, | ||
| integer(c_int), value | m, | ||
| integer(c_int), value | nrhs, | ||
| integer(c_int), value | nnz, | ||
| type(c_ptr), value | 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(c_int), value | analysis, | ||
| integer(c_int), 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), value | 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), target | alpha, | ||
| type(c_ptr), value | 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), value | myinfo, | ||
| integer(kind(rocsparse_analysis_policy_reuse)) | analysis, | ||
| integer(kind(rocsparse_solve_policy_auto)) | solve, | ||
| type(c_ptr), value | 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), value | 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), target | alpha, | ||
| type(c_ptr), value | 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), value | myinfo, | ||
| integer(kind(rocsparse_analysis_policy_reuse)) | analysis, | ||
| integer(kind(rocsparse_solve_policy_auto)) | solve, | ||
| type(c_ptr), value | 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), value | 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), target | alpha, | ||
| type(c_ptr), value | 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), value | myinfo, | ||
| integer(kind(rocsparse_analysis_policy_reuse)) | analysis, | ||
| integer(kind(rocsparse_solve_policy_auto)) | solve, | ||
| type(c_ptr), value | temp_buffer | ||
| ) |
◆ rocsparse_scsrsm_analysis_typed()
| integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_scsrsm_analysis::rocsparse_scsrsm_analysis_typed | ( | type(c_ptr), value | 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), target | alpha, | ||
| type(c_ptr), value | descr, | ||
| type(c_ptr) | csr_val, | ||
| type(c_ptr) | csr_row_ptr, | ||
| type(c_ptr) | csr_col_ind, | ||
| type(c_ptr) | b, | ||
| integer(c_int) | ldb, | ||
| type(c_ptr), value | myinfo, | ||
| integer(kind(rocsparse_analysis_policy_reuse)) | analysis, | ||
| integer(kind(rocsparse_solve_policy_auto)) | solve, | ||
| type(c_ptr), value | temp_buffer | ||
| ) |
The documentation for this interface was generated from the following file: