Skip to main content

cusparseDgtsv2StridedBatch

Function cusparseDgtsv2StridedBatch 

Source
pub unsafe extern "C" fn cusparseDgtsv2StridedBatch(
    handle: cusparseHandle_t,
    m: c_int,
    dl: *const f64,
    d: *const f64,
    du: *const f64,
    x: *mut f64,
    batchCount: c_int,
    batchStride: c_int,
    pBuffer: *mut c_void,
) -> cusparseStatus_t
Expand description

This function computes the solution of multiple tridiagonal linear systems for i=0,…,batchCount:

The coefficient matrix A of each of these tri-diagonal linear system is defined with three vectors corresponding to its lower (dl), main (d), and upper (du) matrix diagonals; the right-hand sides are stored in the dense matrix X. Notice that solution Y overwrites right-hand-side matrix X on exit. The different matrices are assumed to be of the same size and are stored with a fixed batchStride in memory.

The routine does not perform any pivoting and uses a combination of the Cyclic Reduction (CR) and the Parallel Cyclic Reduction (PCR) algorithms to find the solution. It achieves better performance when m is a power of 2.

This function requires a buffer size returned by gtsv2StridedBatch_bufferSizeExt(). The address of pBuffer must be multiple of 128 bytes. If it is not, cusparseStatus_t::CUSPARSE_STATUS_INVALID_VALUE is returned.

  • The routine requires no extra storage.
  • The routine supports asynchronous execution.
  • The routine supports CUDA graph capture.