optimize_trsv

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

Description and Assumptions

The oneapi::mkl::sparse::optimize_trsv routine analyzes matrix structure and performs optimizations. Optimized data is then stored in the handle.

optimize_trsv (Buffer version)

Syntax

namespace oneapi::mkl::sparse {

   void optimize_trsv (sycl::queue                          &queue,
                       oneapi::mkl::uplo                    uplo_val,
                       oneapi::mkl::transpose               transpose_val,
                       oneapi::mkl::diag                    diag_val,
                       oneapi::mkl::sparse::matrix_handle_t handle);
}

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.

handle

Handle to object containing sparse matrix and other internal data. Created using the oneapi::mkl::sparse::set_csr_data routine.

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.

optimize_trmv (USM version)

Syntax

namespace oneapi::mkl::sparse {

   sycl::event optimize_trsv (sycl::queue                          &queue,
                              oneapi::mkl::uplo                    uplo_val,
                              oneapi::mkl::transpose               transpose_val,
                              oneapi::mkl::diag                    diag_val,
                              oneapi::mkl::sparse::matrix_handle_t handle,
                              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.

handle

Handle to object containing sparse matrix and other internal data. Created using the oneapi::mkl::sparse::set_csr_data routine.

dependencies

List of events that oneapi::mkl::sparse::optimize_trsv routine depends on.

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 optimize_trsv routine.