rocsparse_sbsrmv_analysis Interface Reference

rocsparse_sbsrmv_analysis Interface Reference#

HIPFORT API Reference: hipfort_rocsparse::rocsparse_sbsrmv_analysis Interface Reference
hipfort_rocsparse::rocsparse_sbsrmv_analysis Interface Reference

Public Member Functions

integer(kind(rocsparse_status_success)) function rocsparse_sbsrmv_analysis_ (handle, dir, trans, mb, nb, nnzb, descr, bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, myinfo)
 

Detailed Description

rocsparse_bsrmv_analysis performs the analysis step for rocsparse_Xbsrmv(). It is expected that this function will be executed only once for a given sparsity pattern and particular operation type. The gathered analysis meta data is stored in the rocsparse_mat_info object and can be cleared by rocsparse_bsrmv_clear().

If the matrix sparsity pattern changes, the gathered information will become invalid. To perform another sparse matrix multiplication with a matrix having a different sparsity pattern, either destroy the old info object and create a new one or clear the existing info object using rocsparse_bsrmv_clear(). In both cases, the analysis will need to be called again.

Note
This function is non-blocking and executed asynchronously with respect to the host. It can return before the actual computation has finished.
This routine does not support execution in a hipGraph context.
Parameters
[in]handle- handle to the rocSPARSE library context queue.
[in]dir- matrix storage of BSR blocks.
[in]trans- matrix operation type.
[in]mb- number of block rows of the sparse BSR matrix.
[in]nb- number of block columns of the sparse BSR matrix.
[in]nnzb- number of non-zero blocks of the sparse BSR matrix.
[in]descr- descriptor of the sparse BSR matrix. Currently, only rocsparse_matrix_type_general is supported.
[in]bsr_val- array of nnzb blocks of the sparse BSR matrix.
[in]bsr_row_ptr- array of mb+1 elements that point to the start of every block row of the sparse BSR matrix.
[in]bsr_col_ind- array of nnzb elements containing the block column indices of the sparse BSR matrix.
[in]block_dim- block dimension of the sparse BSR matrix.
[out]myInfo- structure that holds the information collected during the analysis step.
Return values
rocsparse_status_successthe operation completed successfully.
rocsparse_status_invalid_handlethe library context was not initialized.
rocsparse_status_invalid_sizemb, nb, or nnzb is invalid.
rocsparse_status_invalid_pointerdescr, bsr_val, bsr_row_ptr, bsr_col_ind, or info pointer is invalid.
rocsparse_status_memory_errorthe buffer for the gathered information could not be allocated.
rocsparse_status_internal_erroran internal error occurred.
rocsparse_status_not_implementedtrans != rocsparse_operation_none or rocsparse_matrix_type != rocsparse_matrix_type_general.

Member Function/Subroutine Documentation

◆ rocsparse_sbsrmv_analysis_()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_sbsrmv_analysis::rocsparse_sbsrmv_analysis_ ( type(c_ptr), value  handle,
integer(kind(rocsparse_direction_row)), value  dir,
integer(kind(rocsparse_operation_none)), value  trans,
integer(c_int), value  mb,
integer(c_int), value  nb,
integer(c_int), value  nnzb,
type(c_ptr), value  descr,
type(c_ptr), value  bsr_val,
type(c_ptr), value  bsr_row_ptr,
type(c_ptr), value  bsr_col_ind,
integer(c_int), value  block_dim,
type(c_ptr), value  myinfo 
)

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