Developer Reference

Contents

oneapi::mkl::sparse::symv

Computes a sparse matrix-dense vector product for a symmetric matrix built from the lower or upper triangular of the input matrix.

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::symv
routine computes a sparse symmetric matrix-dense vector product for a real symmetric matrix built from the lower or upper triangular portion of the input matrix LaTex Math image. defined as
LaTex Math image.
where LaTex Math image. and LaTex Math image. are scalars, LaTex Math image. is a real-valued square sparse matrix of dimension LaTex Math image. rows and columns, LaTex Math image. is a matrix modifier which symmetrizes the matrix according to the
oneapi::mkl::uplo
value and LaTex Math image. and LaTex Math image. are dense vectors.
For a given matrix decomposition into lower, diagonal and upper parts LaTex Math image., the
symv
routine with
oneapi::mkl::uplo::lower
selected will perform the matrix product with LaTex Math image. and for
oneapi::mkl::uplo::upper
will perform the matrix product using LaTex Math image..

API

Syntax
Currently, complex types are not supported.
Using SYCL buffers:
namespace oneapi::mkl::sparse { void symv ( cl::sycl::queue &queue, oneapi::mkl::uplo uplo_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 symv ( cl::sycl::queue &queue, oneapi::mkl::uplo uplo_flag, const fp alpha, oneapi::mkl::sparse::matrix_handle_t handle, fp *x, const 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.
uplo_flag
Specifies which part is to be processed.
oneapi::mkl::uplo::lower
The lower part is used for symmetric product.
oneapi::mkl::uplo::upper
The upper part is used for symmetric product.
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, LaTex Math image., of input matrix.
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, LaTex Math image., of the input matrix.
dependencies
A vector of type
std::vector<cl::sycl::event>
containing the list of events that the
oneapi::mkl::sparse::symv
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
symv
routine.

Examples

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

Product and Performance Information

1

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