Skip to main content

cusparseSgebsr2gebsc

Function cusparseSgebsr2gebsc 

Source
pub unsafe extern "C" fn cusparseSgebsr2gebsc(
    handle: cusparseHandle_t,
    mb: c_int,
    nb: c_int,
    nnzb: c_int,
    bsrSortedVal: *const f32,
    bsrSortedRowPtr: *const c_int,
    bsrSortedColInd: *const c_int,
    rowBlockDim: c_int,
    colBlockDim: c_int,
    bscVal: *mut f32,
    bscRowInd: *mut c_int,
    bscColPtr: *mut c_int,
    copyValues: cusparseAction_t,
    idxBase: cusparseIndexBase_t,
    pBuffer: *mut c_void,
) -> cusparseStatus_t
Expand description

This function can be seen as the same as csr2csc() when each block of size rowBlockDim*colBlockDim is regarded as a scalar.

This sparsity pattern of the result matrix can also be seen as the transpose of the original sparse matrix, but the memory layout of a block does not change.

The user must call gebsr2gebsc_bufferSize() to determine the size of the buffer required by gebsr2gebsc(), allocate the buffer, and pass the buffer pointer to gebsr2gebsc().

  • The routine requires no extra storage if pBuffer != NULL
  • The routine supports asynchronous execution if the Stream Ordered Memory Allocator is available
  • The routine supports CUDA graph capture if the Stream Ordered Memory Allocator is available.