rocsparse_csrgemm_nnz Interface Reference#
hipfort_rocsparse::rocsparse_csrgemm_nnz Interface Reference
Sparse matrix sparse matrix multiplication using the CSR storage format. More...
Public Member Functions | |
| integer(kind(rocsparse_status_success)) function | rocsparse_csrgemm_nnz_ (handle, trans_a, trans_b, m, n, k, descr_a, nnz_a, csr_row_ptr_a, csr_col_ind_a, descr_b, nnz_b, csr_row_ptr_b, csr_col_ind_b, descr_d, nnz_d, csr_row_ptr_d, csr_col_ind_d, descr_c, csr_row_ptr_c, nnz_c, info_c, temp_buffer) |
| integer(kind(rocsparse_status_success)) function | rocsparse_csrgemm_nnz_rank_0 (handle, trans_a, trans_b, m, n, k, descr_a, nnz_a, csr_row_ptr_a, csr_col_ind_a, descr_b, nnz_b, csr_row_ptr_b, csr_col_ind_b, descr_d, nnz_d, csr_row_ptr_d, csr_col_ind_d, descr_c, csr_row_ptr_c, nnz_c, info_c, temp_buffer) |
| integer(kind(rocsparse_status_success)) function | rocsparse_csrgemm_nnz_rank_1 (handle, trans_a, trans_b, m, n, k, descr_a, nnz_a, csr_row_ptr_a, csr_col_ind_a, descr_b, nnz_b, csr_row_ptr_b, csr_col_ind_b, descr_d, nnz_d, csr_row_ptr_d, csr_col_ind_d, descr_c, csr_row_ptr_c, nnz_c, info_c, temp_buffer) |
Detailed Description
Sparse matrix sparse matrix multiplication using the CSR storage format.
rocsparse_csrgemm_nnz computes the total CSR non-zero elements and the CSR row offsets that point to the start of every row of the sparse CSR matrix of the resulting multiplied matrix C. It is assumed that csr_row_ptr_C has been allocated with size m+1. The required buffer size can be obtained by rocsparse_scsrgemm_buffer_size(), rocsparse_dcsrgemm_buffer_size(), rocsparse_ccsrgemm_buffer_size(), and rocsparse_zcsrgemm_buffer_size(), respectively.
- Note
- Note that for matrix products with more than 8192 intermediate products per row, an additional temporary storage buffer is allocated by the algorithm.
-
This function supports unsorted CSR matrices as input, while output will be sorted. Note that matrices B and D can only be unsorted up to 8192 intermediate products per row. If this number is exceeded,
rocsparse_status_requires_sorted_storagewill be returned. - This function is blocking with respect to the host.
-
Currently, only
trans_A==trans_B==rocsparse_operation_noneis supported. -
Currently, only
rocsparse_matrix_type_generalis supported. - 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 \(op(A)\) and \(C\). [in] n - number of columns of the sparse CSR matrix \(op(B)\) and \(C\). [in] k - number of columns of the sparse CSR matrix \(op(A)\) and number of rows of the sparse CSR matrix \(op(B)\). [in] descr_A - descriptor of the sparse CSR matrix \(A\). Currently, only rocsparse_matrix_type_generalis supported.[in] nnz_A - number of non-zero entries of the sparse CSR matrix \(A\). [in] csr_row_ptr_A - array of m+1elements ( \(op(A) == A\),k+1otherwise) that point to the start of every row of the sparse CSR matrix \(op(A)\).[in] csr_col_ind_A - array of nnz_Aelements containing the column indices of the sparse CSR matrix \(A\).[in] descr_B - descriptor of the sparse CSR matrix \(B\). Currently, only rocsparse_matrix_type_generalis supported.[in] nnz_B - number of non-zero entries of the sparse CSR matrix \(B\). [in] csr_row_ptr_B - array of k+1elements ( \(op(B) == B\),m+1otherwise) that point to the start of every row of the sparse CSR matrix \(op(B)\).[in] csr_col_ind_B - array of nnz_Belements containing the column indices of the sparse CSR matrix \(B\).[in] descr_D - descriptor of the sparse CSR matrix \(D\). Currently, only rocsparse_matrix_type_generalis supported.[in] nnz_D - number of non-zero entries of the sparse CSR matrix \(D\). [in] csr_row_ptr_D - array of m+1elements that point to the start of every row of the sparse CSR matrix \(D\).[in] csr_col_ind_D - array of nnz_Delements containing the column indices of the sparse CSR matrix \(D\).[in] descr_C - descriptor of the sparse CSR matrix \(C\). Currently, only rocsparse_matrix_type_generalis supported.[out] csr_row_ptr_C - array of m+1elements that point to the start of every row of the sparse CSR matrix \(C\).[out] nnz_C - pointer to the number of non-zero entries of the sparse CSR matrix \(C\). [in] info_C - structure that holds meta data for the sparse CSR matrix \(C\). [in] temp_buffer - temporary storage buffer allocated by the user, size is returned by rocsparse_scsrgemm_buffer_size(), rocsparse_dcsrgemm_buffer_size(), rocsparse_ccsrgemm_buffer_size(), or rocsparse_zcsrgemm_buffer_size().
- Return values
-
rocsparse_status_success the operation completed successfully. rocsparse_status_invalid_handle the library context was not initialized. rocsparse_status_invalid_size m,n,k,nnz_A,nnz_B, ornnz_Dis invalid.rocsparse_status_invalid_pointer descr_A,csr_row_ptr_A,csr_col_ind_A,descr_B,csr_row_ptr_B,csr_col_ind_B,descr_D,csr_row_ptr_D,csr_col_ind_D,descr_C,csr_row_ptr_C,nnz_C,info_C, ortemp_bufferis invalid.rocsparse_status_memory_error additional buffer for long rows could not be allocated. rocsparse_status_not_implemented trans_A!=rocsparse_operation_none,trans_B!=rocsparse_operation_none, orrocsparse_matrix_type!=rocsparse_matrix_type_general.
Member Function/Subroutine Documentation
◆ rocsparse_csrgemm_nnz_()
| integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_csrgemm_nnz::rocsparse_csrgemm_nnz_ | ( | 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 | n, | ||
| integer(c_int), value | k, | ||
| type(c_ptr), value | descr_a, | ||
| integer(c_int), value | nnz_a, | ||
| type(c_ptr), value | csr_row_ptr_a, | ||
| type(c_ptr), value | csr_col_ind_a, | ||
| type(c_ptr), value | descr_b, | ||
| integer(c_int), value | nnz_b, | ||
| type(c_ptr), value | csr_row_ptr_b, | ||
| type(c_ptr), value | csr_col_ind_b, | ||
| type(c_ptr), value | descr_d, | ||
| integer(c_int), value | nnz_d, | ||
| type(c_ptr), value | csr_row_ptr_d, | ||
| type(c_ptr), value | csr_col_ind_d, | ||
| type(c_ptr), value | descr_c, | ||
| type(c_ptr), value | csr_row_ptr_c, | ||
| type(c_ptr), value | nnz_c, | ||
| type(c_ptr), value | info_c, | ||
| type(c_ptr), value | temp_buffer | ||
| ) |
◆ rocsparse_csrgemm_nnz_rank_0()
| integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_csrgemm_nnz::rocsparse_csrgemm_nnz_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) | n, | ||
| integer(c_int) | k, | ||
| type(c_ptr) | descr_a, | ||
| integer(c_int) | nnz_a, | ||
| integer(c_int), target | csr_row_ptr_a, | ||
| integer(c_int), target | csr_col_ind_a, | ||
| type(c_ptr) | descr_b, | ||
| integer(c_int) | nnz_b, | ||
| integer(c_int), target | csr_row_ptr_b, | ||
| integer(c_int), target | csr_col_ind_b, | ||
| type(c_ptr) | descr_d, | ||
| integer(c_int) | nnz_d, | ||
| integer(c_int), target | csr_row_ptr_d, | ||
| integer(c_int), target | csr_col_ind_d, | ||
| type(c_ptr) | descr_c, | ||
| integer(c_int), target | csr_row_ptr_c, | ||
| integer(c_int), target | nnz_c, | ||
| type(c_ptr) | info_c, | ||
| type(c_ptr) | temp_buffer | ||
| ) |
◆ rocsparse_csrgemm_nnz_rank_1()
| integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_csrgemm_nnz::rocsparse_csrgemm_nnz_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) | n, | ||
| integer(c_int) | k, | ||
| type(c_ptr) | descr_a, | ||
| integer(c_int) | nnz_a, | ||
| integer(c_int), dimension(:), target | csr_row_ptr_a, | ||
| integer(c_int), dimension(:), target | csr_col_ind_a, | ||
| type(c_ptr) | descr_b, | ||
| integer(c_int) | nnz_b, | ||
| integer(c_int), dimension(:), target | csr_row_ptr_b, | ||
| integer(c_int), dimension(:), target | csr_col_ind_b, | ||
| type(c_ptr) | descr_d, | ||
| integer(c_int) | nnz_d, | ||
| integer(c_int), dimension(:), target | csr_row_ptr_d, | ||
| integer(c_int), dimension(:), target | csr_col_ind_d, | ||
| type(c_ptr) | descr_c, | ||
| integer(c_int), dimension(:), target | csr_row_ptr_c, | ||
| integer(c_int), dimension(:), target | nnz_c, | ||
| type(c_ptr) | info_c, | ||
| type(c_ptr) | temp_buffer | ||
| ) |
The documentation for this interface was generated from the following file: