Performs internal optimizations for mkl::sparse::trsv by analyzing the matrix structure.
Using SYCL buffers:
void mkl::sparse::optimize_trsv (cl::sycl::queue & queue, mkl::uplo uplo_flag, mkl::transpose transpose_flag, mkl::diag diag_flag, matrix_handle_t handle);
Using USM pointers:
Currently, the USM API might be a blocking call.
cl::sycl::event mkl::sparse::optimize_trsv (cl::sycl::queue & queue, mkl::uplo uplo_flag, mkl::transpose transpose_flag, mkl::diag diag_flag, matrix_handle_t handle, const cl::sycl::vector_class<cl::sycl::event> &dependencies );
The mkl::sparse::optimize_trsv routine analyzes matrix structure and performs optimizations. Optimized data is then stored in the handle.
Specifies the SYCL command queue which will be used for SYCL kernels execution.
Specifies the triangular matrix part for the input matrix.
mkl::uplo::lower | The lower triangular matrix part is processed. |
mkl::uplo::upper | The upper triangular matrix part is processed. |
Specifies operation op() on input matrix.
mkl::transpose::nontrans | Non-transpose, op(A) = A. |
mkl::transpose::trans | Transpose, op(A) = AT. |
mkl::transpose::conjtrans | Conjugate transpose, op(A) = AH. |
Currently, the only supported case for operation is mkl::transpose::nontrans.
Specifies if the input matrix has a unit diagonal or not.
mkl::diag::nonunit | Diagonal elements might not be equal to one. |
mkl::diag::unit | Diagonal elements are equal to one. |
Handle to object containing sparse matrix and other internal data. Created using one of the mkl::sparse::set_<sparse_matrix_type>_data routines.
Currently, the only supported case for <sparse_matrix_type> is csr.
A vector of type cl::sycl::vector_class<cl::sycl::event> containing the list of events that the mkl::sparse::optimize_trsv routine depends on.
SYCL event which can be waited upon or added as a dependency for the completion of the optimize_trsv routine.