trmv

Computes a sparse matrix-dense vector product over upper or lower triangular matrix parts.

Description and Assumptions

Refer to Supported Types for a list of supported <fp> and <intType>. The oneapi::mkl::sparse::trmv routine computes a sparse matrix-dense vector product over a triangular part defined as

\[y \leftarrow \alpha \text{op}(A) x + \beta y\]

where: \(alpha\) and \(beta\) are scalars, \(x\) and \(y\) are dense vectors, A is a sparse matrix.

trmv (Buffer version)

Syntax

namespace oneapi::mkl::sparse {

   void trmv (sycl::queue                          &queue,
              oneapi::mkl::uplo                    uplo_val
              oneapi::mkl::transpose               transpose_val,
              oneapi::mkl::diag                    diag_val
              fp                                   alpha,
              oneapi::mkl::sparse::matrix_handle_t A_handle,
              sycl::buffer<fp, 1>                  &x,
              fp                                   beta,
              sycl::buffer<fp, 1>                  &y);

}

Input Parameters

queue

Specifies the SYCL command queue which will be used for SYCL kernels execution.

uplo_val

Specifies which part is to be processed. The possible options are described in uplo enum class.

transpose_val

Specifies operation op() on input matrix. The possible options are described in transpose enum class.

diag_val

Specifies if the diagonal is unit or not. The possible options are described in diag enum class.

alpha

Specifies the scalar \(\alpha\).

A_handle

Handle to object containing sparse matrix \(A\). Created using the oneapi::mkl::sparse::set_csr_data routine.

x

SYCL memory object containing an array of size at least equal to the number of columns of matrix \(\text{op}(A)\).

beta

Specifies the scalar \(\beta\).

y

SYCL memory object containing an array of size at least equal to the number of rows of matrix \(\text{op}(A)\).

Output Parameters

y

Overwritten by the updated vector y.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

trmv (USM version)

Syntax

namespace oneapi::mkl::sparse {

   sycl::event trmv (sycl::queue                           &queue,
                     oneapi::mkl::uplo                     uplo_val
                     oneapi::mkl::transpose                transpose_val,
                     oneapi::mkl::diag                     diag_val
                     fp                                    alpha,
                     oneapi::mkl::sparse::matrix_handle_t  A_handle,
                     fp                                    *x,
                     fp                                    beta,
                     fp                                    *y
                     const std::vector<sycl::event>        &dependencies = {});

}

Input Parameters

queue

Specifies the SYCL command queue which will be used for SYCL kernels execution.

uplo_val

Specifies which part is to be processed. The possible options are described in uplo enum class.

transpose_val

Specifies operation op() on input matrix. The possible options are described in transpose enum class.

diag_val

Specifies if the diagonal is unit or not. The possible options are described in diag enum class.

alpha

Specifies the scalar \(\alpha\).

A_handle

Handle to object containing sparse matrix \(A\). Created using the oneapi::mkl::sparse::set_csr_data routine.

x

Device-accessible USM object containing an array of size at least equal to the number of columns of matrix \(\text{op}(A)\).

beta

Specifies the scalar \(\beta\).

y

Device-accessible USM object containing an array of size at least equal to the number of rows of matrix \(\text{op}(A)\).

dependencies

List of events that oneapi::mkl::sparse::trmv routine depends on. If omitted, defaults to no dependencies.

Output Parameters

y

Overwritten by the updated vector y.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

Return Values

Output event that can be waited upon or added as a dependency for the completion of trmv routine.