gemv#
Computes a matrix-vector product using a general matrix.
Description
The gemv routines compute a scalar-matrix-vector product and add the
result to a scalar-vector product, with a general matrix. The
operation is defined as:
where:
op(A) is one of op(A) = A, or op(A) =
AT, or op(A) = AH,
alpha and beta are scalars,
A is an m-by-n matrix, and x, y are vectors.
gemv supports the following precisions.
T
float
double
std::complex<float>
std::complex<double>
gemv (Buffer Version)#
Syntax
namespace oneapi::mkl::blas::column_major {
    void gemv(sycl::queue &queue,
              oneapi::mkl::transpose trans,
              std::int64_t m,
              std::int64_t n,
              T alpha,
              sycl::buffer<T,1> &a,
              std::int64_t lda,
              sycl::buffer<T,1> &x,
              std::int64_t incx,
              T beta,
              sycl::buffer<T,1> &y,
              std::int64_t incy)
}
namespace oneapi::mkl::blas::row_major {
    void gemv(sycl::queue &queue,
              oneapi::mkl::transpose trans,
              std::int64_t m,
              std::int64_t n,
              T alpha,
              sycl::buffer<T,1> &a,
              std::int64_t lda,
              sycl::buffer<T,1> &x,
              std::int64_t incx,
              T beta,
              sycl::buffer<T,1> &y,
              std::int64_t incy)
}
Input Parameters
- queue
 The queue where the routine should be executed.
- trans
 Specifies
op(A), the transposition operation applied toA.- m
 Specifies the number of rows of the matrix
A. The value ofmmust be at least zero.- n
 Specifies the number of columns of the matrix
A. The value ofnmust be at least zero.- alpha
 Scaling factor for the matrix-vector product.
- a
 The buffer holding the input matrix
A. Must have a size of at leastlda*nif column major layout is used or at leastlda*mif row major layout is used. See Matrix Storage for more details.- lda
 Leading dimension of matrix
A. Must be positive and at leastmif column major layout is used or at leastnif row major layout is used.- x
 Buffer holding input vector
x. The lengthlenof vectorxisnifAis not transposed, andmifAis transposed. The buffer must be of size at least (1 + (len- 1)*abs(incx)). See Matrix Storage for more details.- incx
 The stride of vector
x. Must not be zero.- beta
 The scaling factor for vector
y.- y
 Buffer holding input/output vector
y. The lengthlenof vectoryism, ifAis not transposed, andnifAis transposed. The buffer must be of size at least (1 + (len- 1)*abs(incy)) wherelenis this length. See Matrix Storage for more details.- incy
 The stride of vector
y. Must not be zero.
Output Parameters
- y
 The buffer holding updated vector
y.
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.
gemv (USM Version)#
Syntax
namespace oneapi::mkl::blas::column_major {
    sycl::event gemv(sycl::queue &queue,
                     oneapi::mkl::transpose trans,
                     std::int64_t m,
                     std::int64_t n,
                     value_or_pointer<T> alpha,
                     const T *a,
                     std::int64_t lda,
                     const T *x,
                     std::int64_t incx,
                     value_or_pointer<T> beta,
                     T *y,
                     std::int64_t incy,
                     const std::vector<sycl::event> &dependencies = {})
}
namespace oneapi::mkl::blas::row_major {
    sycl::event gemv(sycl::queue &queue,
                     oneapi::mkl::transpose trans,
                     std::int64_t m,
                     std::int64_t n,
                     value_or_pointer<T> alpha,
                     const T *a,
                     std::int64_t lda,
                     const T *x,
                     std::int64_t incx,
                     value_or_pointer<T> beta,
                     T *y,
                     std::int64_t incy,
                     const std::vector<sycl::event> &dependencies = {})
}
Input Parameters
- queue
 The queue where the routine should be executed.
- trans
 Specifies
op(A), the transposition operation applied toA. See oneMKL defined datatypes for more details.- m
 Specifies the number of rows of the matrix
A. The value ofmmust be at least zero.- n
 Specifies the number of columns of the matrix
A. The value ofnmust be at least zero.- alpha
 Scaling factor for the matrix-vector product. See Scalar Arguments in BLAS for more details.
- a
 Pointer to the input matrix
A. Must have a size of at leastlda*nif column major layout is used or at leastlda*mif row major layout is used. See Matrix Storage for more details.- lda
 Leading dimension of matrix
A. Must be positive and at leastmif column major layout is used or at leastnif row major layout is used.- x
 Pointer to the input vector
x. The lengthlenof vectorxisnifAis not transposed, andmifAis transposed. The array holding vectorxmust be of size at least (1 + (len- 1)*abs(incx)). See Matrix Storage for more details.- incx
 The stride of vector
x. Must not be zero.- beta
 The scaling factor for vector
y. See Scalar Arguments in BLAS for more details.- y
 Pointer to input/output vector
y. The lengthlenof vectoryism, ifAis not transposed, andnifAis transposed. The array holding input/output vectorymust be of size at least (1 + (len- 1)*abs(incy)) wherelenis this length. See Matrix Storage for more details.- incy
 The stride of vector
y. Must not be zero.- dependencies
 List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.
Output Parameters
- y
 The pointer to updated vector
y.
Return Values
Output event to wait on to ensure computation is complete.
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.
oneapi::mkl::unsupported_device
Parent topic: BLAS Level 2 Routines