oneapi::mkl::sparse::optimize_trsv

Performs internal optimizations for oneapi::mkl::sparse::trsv by analyzing the matrix structure.

Syntax

Note

Currently, complex types are not supported.

Using SYCL buffers:

void oneapi::mkl::sparse::optimize_trsv(cl::sycl::queue &queue, oneapi::mkl::uplo uplo_flag, oneapi::mkl::transpose transpose_flag, oneapi::mkl::diag diag_flag, oneapi::mkl::sparse::matrix_handle_t handle)

Using USM pointers:

Note

Currently, the USM API might be a blocking call.

cl::sycl::event oneapi::mkl::sparse::optimize_trsv(cl::sycl::queue &queue, oneapi::mkl::uplo uplo_flag, oneapi::mkl::transpose transpose_flag, oneapi::mkl::diag diag_flag, oneapi::mkl::sparse::matrix_handle_t handle, const cl::sycl::vector_class<cl::sycl::event> &dependencies)

Include Files

  • mkl_spblas_sycl.hpp

Description

Note

Refer to Exceptions for a detailed description of the exceptions thrown. The oneapi::mkl::sparse::optimize_trsv routine analyzes matrix structure and performs optimizations. Optimized data is then stored in the handle.

Input Parameters

queue

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

uplo_flag

Specifies which part of the matrix is to be processed.

oneapi::mkl::uplo::lower

The lower triangular matrix part is processed.

oneapi::mkl::uplo::upper

The upper triangular matrix part is processed.

transpose_flag

Specifies operation op() on input matrix.

oneapi::mkl::transpose::nontrans

Non-transpose, op(A) = A.

oneapi::mkl::transpose::trans

Transpose, op(A) = AT.

oneapi::mkl::transpose::conjtrans

Conjugate transpose, op(A) = AH.

Note

Currently, the only supported case for operation is oneapi::mkl::transpose::nontrans.

diag_flag

Specifies if the diagonal used for computations is unit or not.

oneapi::mkl::diag::nonunit

Diagonal elements might not be equal to one.

oneapi::mkl::diag::unit

Diagonal elements are equal to one.

handle

Handle to object containing sparse matrix and other internal data. Created using one of the oneapi::mkl::sparse::set_<sparse_matrix_type>_data routines.

Note

Currently, the only supported case for <sparse_matrix_type> is csr.

dependencies

A vector of type cl::sycl::vector_class<cl::sycl::event> containing the list of events that the oneapi::mkl::sparse::optimize_trsv routine depends on.

Return Values (USM Only)

cl::sycl::event

SYCL event which can be waited upon or added as a dependency for the completion of the optimize_trsv routine.