Developer Reference

Contents

oneapi::mkl::sparse::gemvdot

Computes a sparse matrix-dense vector product with dot 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::gemvdot
routine computes a sparse matrix-dense vector product and dot product defined as
LaTex Math image.
LaTex Math image.
where LaTex Math image. is a general sparse matrix, LaTex Math image., LaTex Math image., and LaTex Math image. are scalars, LaTex Math image. and LaTex Math image. are dense vectors and LaTex Math image. is a matrix modifier:
LaTex Math image.

API

Syntax
Currently, complex types are not supported.
Using SYCL buffers:
namespace oneapi::mkl::sparse { void gemvdot ( 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, cl::sycl::buffer<fp, 1> &d) }
Using USM pointers:
namespace oneapi::mkl::sparse { cl::sycl::event gemvdot ( cl::sycl::queue &queue, oneapi::mkl::transpose transpose_flag, const fp alpha, oneapi::mkl::sparse::matrix_handle_t handle, fp *x, const fp beta, fp *y, fp *d, 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
transpose_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::gemvdot
routine depends on.
Output Parameters
y
Overwritten by the updated vector LaTex Math image..
d
Overwritten by the dot product of LaTex Math image. and LaTex Math image..
Return Values
cl::sycl::event
SYCL event which can be waited upon or added as a dependency for the completion of the
gemvdot
routine.

Examples

An example of how to use
oneapi::mkl::sparse::gemvdot
with SYCL buffers can be found in the oneMKL installation directory, under:
examples/dpcpp/sparse_blas/source/sparse_gemvdot.cpp

Product and Performance Information

1

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