Skip to main content

spgemm_numeric

Function spgemm_numeric 

Source
pub fn spgemm_numeric<T: GpuFloat>(
    handle: &SparseHandle,
    a: &CsrMatrix<T>,
    b: &CsrMatrix<T>,
    c_row_ptr: CUdeviceptr,
    c_col_idx: CUdeviceptr,
    c_values: CUdeviceptr,
) -> SparseResult<()>
Expand description

Numeric phase of SpGEMM: fills in values and column indices of C = A * B.

The output matrix c must already have its row_ptr set (from the symbolic phase) and its col_idx / values arrays allocated to the correct size.

§Arguments

  • handle – Sparse handle.
  • a – Sparse CSR matrix A.
  • b – Sparse CSR matrix B.
  • c_row_ptr – Device pointer to C’s row_ptr (from symbolic phase upload).
  • c_col_idx – Device pointer to C’s col_idx (pre-allocated).
  • c_values – Device pointer to C’s values (pre-allocated).

§Errors

Returns SparseError::DimensionMismatch if dimensions are wrong. Returns SparseError::PtxGeneration if kernel generation fails.