Performs internal optimizations for mkl::sparse::gemv by analyzing the matrix structure.
Currently, complex types are not supported.
Using SYCL buffers:
void mkl::sparse::optimize_gemv (cl::sycl::queue & queue, mkl::transpose transpose_flag, matrix_handle_t handle);
Using USM pointers:
Currently, the USM API might be a blocking call.
cl::sycl:event mkl::sparse::optimize_gemv (cl::sycl::queue & queue, mkl::transpose transpose_flag, matrix_handle_t handle, cl::sycl::vector_class<cl::sycl::event> &dependencies);
The mkl::sparse::optimize_gemv 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 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.
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_gemv routine depends on.
SYCL event which can be waited upon or added as a dependency for the completion of the optimize_gemv routine.