clBLAS 2.0
Loading...
Searching...
No Matches
GBMV - General banded matrix-vector multiplication

Functions

clblasStatus clblasSgbmv (clblasOrder order, clblasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_float alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_float beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 Matrix-vector product with a general rectangular banded matrix and float elements.
 
clblasStatus clblasDgbmv (clblasOrder order, clblasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_double alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_double beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 Matrix-vector product with a general rectangular banded matrix and double elements.
 
clblasStatus clblasCgbmv (clblasOrder order, clblasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_float2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_float2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 Matrix-vector product with a general rectangular banded matrix and float-complex elements.
 
clblasStatus clblasZgbmv (clblasOrder order, clblasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_double2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_double2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 Matrix-vector product with a general rectangular banded matrix and double-complex elements.
 

Detailed Description

Function Documentation

◆ clblasCgbmv()

clblasStatus clblasCgbmv ( clblasOrder order,
clblasTranspose trans,
size_t M,
size_t N,
size_t KL,
size_t KU,
cl_float2 alpha,
const cl_mem A,
size_t offa,
size_t lda,
const cl_mem X,
size_t offx,
int incx,
cl_float2 beta,
cl_mem Y,
size_t offy,
int incy,
cl_uint numCommandQueues,
cl_command_queue * commandQueues,
cl_uint numEventsInWaitList,
const cl_event * eventWaitList,
cl_event * events )

Matrix-vector product with a general rectangular banded matrix and float-complex elements.

Matrix-vector products:

  • \( Y \leftarrow \alpha A X + \beta Y \)
  • \( Y \leftarrow \alpha A^T X + \beta Y \)
Parameters
[in]orderRow/column order.
[in]transHow matrix A is to be transposed.
[in]MNumber of rows in banded matrix A.
[in]NNumber of columns in banded matrix A.
[in]KLNumber of sub-diagonals in banded matrix A.
[in]KUNumber of super-diagonals in banded matrix A.
[in]alphaThe factor of banded matrix A.
[in]ABuffer object storing banded matrix A.
[in]offaOffset in number of elements for the first element in banded matrix A.
[in]ldaLeading dimension of banded matrix A. It cannot be less than ( KL + KU + 1 )
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]betaThe factor of the vector Y.
[out]YBuffer object storing the vector y.
[in]offyOffset of first element of vector Y in buffer object. Counted in elements.
[in]incyIncrement for the elements of Y. Must not be zero.
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
The same result as the clblasSgbmv() function.

◆ clblasDgbmv()

clblasStatus clblasDgbmv ( clblasOrder order,
clblasTranspose trans,
size_t M,
size_t N,
size_t KL,
size_t KU,
cl_double alpha,
const cl_mem A,
size_t offa,
size_t lda,
const cl_mem X,
size_t offx,
int incx,
cl_double beta,
cl_mem Y,
size_t offy,
int incy,
cl_uint numCommandQueues,
cl_command_queue * commandQueues,
cl_uint numEventsInWaitList,
const cl_event * eventWaitList,
cl_event * events )

Matrix-vector product with a general rectangular banded matrix and double elements.

Matrix-vector products:

  • \( Y \leftarrow \alpha A X + \beta Y \)
  • \( Y \leftarrow \alpha A^T X + \beta Y \)
Parameters
[in]orderRow/column order.
[in]transHow matrix A is to be transposed.
[in]MNumber of rows in banded matrix A.
[in]NNumber of columns in banded matrix A.
[in]KLNumber of sub-diagonals in banded matrix A.
[in]KUNumber of super-diagonals in banded matrix A.
[in]alphaThe factor of banded matrix A.
[in]ABuffer object storing banded matrix A.
[in]offaOffset in number of elements for the first element in banded matrix A.
[in]ldaLeading dimension of banded matrix A. It cannot be less than ( KL + KU + 1 )
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]betaThe factor of the vector Y.
[out]YBuffer object storing the vector y.
[in]offyOffset of first element of vector Y in buffer object. Counted in elements.
[in]incyIncrement for the elements of Y. Must not be zero.
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
  • clblasSuccess on success;
  • clblasInvalidDevice if a target device does not support floating point arithmetic with double precision;
  • the same error codes as the clblasSgbmv() function otherwise.

◆ clblasSgbmv()

clblasStatus clblasSgbmv ( clblasOrder order,
clblasTranspose trans,
size_t M,
size_t N,
size_t KL,
size_t KU,
cl_float alpha,
const cl_mem A,
size_t offa,
size_t lda,
const cl_mem X,
size_t offx,
int incx,
cl_float beta,
cl_mem Y,
size_t offy,
int incy,
cl_uint numCommandQueues,
cl_command_queue * commandQueues,
cl_uint numEventsInWaitList,
const cl_event * eventWaitList,
cl_event * events )

Matrix-vector product with a general rectangular banded matrix and float elements.

Matrix-vector products:

  • \( Y \leftarrow \alpha A X + \beta Y \)
  • \( Y \leftarrow \alpha A^T X + \beta Y \)
Parameters
[in]orderRow/column order.
[in]transHow matrix A is to be transposed.
[in]MNumber of rows in banded matrix A.
[in]NNumber of columns in banded matrix A.
[in]KLNumber of sub-diagonals in banded matrix A.
[in]KUNumber of super-diagonals in banded matrix A.
[in]alphaThe factor of banded matrix A.
[in]ABuffer object storing banded matrix A.
[in]offaOffset in number of elements for the first element in banded matrix A.
[in]ldaLeading dimension of banded matrix A. It cannot be less than ( KL + KU + 1 )
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]betaThe factor of the vector Y.
[out]YBuffer object storing the vector y.
[in]offyOffset of first element of vector Y in buffer object. Counted in elements.
[in]incyIncrement for the elements of Y. Must not be zero.
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
  • clblasSuccess on success;
  • clblasNotInitialized if clblasSetup() was not called;
  • clblasInvalidValue if invalid parameters are passed:
    • either M or N is zero, or
    • KL is greater than M - 1, or
    • KU is greater than N - 1, or
    • either incx or incy is zero, or
    • any of the leading dimensions is invalid;
    • the matrix size or the vector sizes along with the increments lead to accessing outside of any of the buffers;
  • clblasInvalidMemObject if either A, X, or Y object is Invalid, or an image object rather than the buffer one;
  • clblasOutOfHostMemory if the library can't allocate memory for internal structures;
  • clblasInvalidCommandQueue if the passed command queue is invalid;
  • clblasInvalidContext if a context a passed command queue belongs to was released;
  • clblasInvalidOperation if kernel compilation relating to a previous call has not completed for any of the target devices;
  • clblasCompilerNotAvailable if a compiler is not available;
  • clblasBuildProgramFailure if there is a failure to build a program executable.
Examples
example_sgbmv.c.

◆ clblasZgbmv()

clblasStatus clblasZgbmv ( clblasOrder order,
clblasTranspose trans,
size_t M,
size_t N,
size_t KL,
size_t KU,
cl_double2 alpha,
const cl_mem A,
size_t offa,
size_t lda,
const cl_mem X,
size_t offx,
int incx,
cl_double2 beta,
cl_mem Y,
size_t offy,
int incy,
cl_uint numCommandQueues,
cl_command_queue * commandQueues,
cl_uint numEventsInWaitList,
const cl_event * eventWaitList,
cl_event * events )

Matrix-vector product with a general rectangular banded matrix and double-complex elements.

Matrix-vector products:

  • \( Y \leftarrow \alpha A X + \beta Y \)
  • \( Y \leftarrow \alpha A^T X + \beta Y \)
Parameters
[in]orderRow/column order.
[in]transHow matrix A is to be transposed.
[in]MNumber of rows in banded matrix A.
[in]NNumber of columns in banded matrix A.
[in]KLNumber of sub-diagonals in banded matrix A.
[in]KUNumber of super-diagonals in banded matrix A.
[in]alphaThe factor of banded matrix A.
[in]ABuffer object storing banded matrix A.
[in]offaOffset in number of elements for the first element in banded matrix A.
[in]ldaLeading dimension of banded matrix A. It cannot be less than ( KL + KU + 1 )
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]betaThe factor of the vector Y.
[out]YBuffer object storing the vector y.
[in]offyOffset of first element of vector Y in buffer object. Counted in elements.
[in]incyIncrement for the elements of Y. Must not be zero.
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
The same result as the clblasDgbmv() function.