Developer Reference

Contents

oneapi::mkl::sparse::gemv

Computes a sparse matrix-dense vector product.

Description

Refer to Supported Types for a list of supported
<fp>
and
<intType>
and refer to Exceptions for a detailed description of the exceptions thrown.
The
oneapi::mkl::sparse::gemv
routine computes a sparse matrix-dense vector product defined as
LaTex Math image.
where LaTex Math image. and LaTex Math image. are scalars, LaTex Math image. is a general sparse matrix of dimensions
num_rows
rows and
num_cols
columns and LaTex Math image. is a matrix modifier:
LaTex Math image.
The dense vectors LaTex Math image. and LaTex Math image. are appropriately sized based on matrix product dimensions of LaTex Math image..

API

Syntax
Currently, complex types are not supported.
Using SYCL buffers:
namespace oneapi::mkl::sparse { void gemv ( cl::sycl::queue &queue, oneapi::mkl::transpose transpose_flag, const fp alpha, oneapi::mkl::sparse::matrix_handle_t handle, cl::sycl::buffer<fp, 1> &x, const fp beta, cl::sycl::buffer<fp, 1> &y) }
Using USM pointers:
namespace oneapi::mkl::sparse { cl::sycl::event gemv ( cl::sycl::queue &queue, oneapi::mkl::transpose transpose_flag, const fp alpha, oneapi::mkl::sparse::matrix_handle_t handle, const fp *x, fp beta, fp *y, const std::vector<cl::sycl::event> &dependencies= {}) }
Include Files
  • oneapi/mkl/spblas.hpp
Input Parameters
queue
Specifies the SYCL command queue which will be used for SYCL kernels execution.
transpose_flag
Specifies operation
op()
on input matrix.
oneapi::mkl::transpose::nontrans
Non-transpose, LaTex Math image..
oneapi::mkl::transpose::trans
Transpose, LaTex Math image..
oneapi::mkl::transpose::conjtrans
Conjugate transpose, LaTex Math image..
Currently, the only supported case for
operation
is
oneapi::mkl::transpose::nontrans
.
alpha
Specifies the scalar, LaTex Math image..
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.
Currently, the only supported case for
<sparse_matrix_type>
is csr.
x
SYCL buffer or device-accessible USM pointer of size at least equal to the number of columns of input matrix if
transpse_flag
=
oneapi::mkl::transpose::nontrans
and at least the number of rows of input matrix otherwise.
beta
Specifies the scalar, LaTex Math image..
y
SYCL buffer or device-accessible USM pointer of size at least equal to the number of rows of the input matrix if
transpose_flag
=
oneapi::mkl::transpose::nontrans
and at least the number of columns of the input matrix otherwise.
dependencies
A vector of type
std::vector<cl::sycl::event>
containing the list of events that the
oneapi::mkl::sparse::gemv
routine depends on.
Output Parameters
y
Overwritten by the updated vector LaTex Math image..
Return Values (USM Only)
cl::sycl::event
SYCL event which can be waited upon or added as a dependency for the completion of the
gemv
routine.

Examples

An example of how to use
oneapi::mkl::sparse::gemv
with SYCL buffers or USM pointers can be found in the oneMKL installation directory, under:
examples/dpcpp/sparse_blas/source/sparse_gemv.cpp
examples/dpcpp/sparse_blas/source/sparse_gemv_usm.cpp

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.