clBLAS  2.11
 All Functions Typedefs Enumerations Enumerator Groups Pages
Functions
HEMM - Hermitian matrix-matrix multiplication

Functions

clblasStatus clblasChemm (clblasOrder order, clblasSide side, clblasUplo uplo, size_t M, size_t N, cl_float2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_float2 beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 Matrix-matrix product of hermitian rectangular matrices with float-complex elements. More...
 
clblasStatus clblasZhemm (clblasOrder order, clblasSide side, clblasUplo uplo, size_t M, size_t N, cl_double2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_double2 beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 Matrix-matrix product of hermitian rectangular matrices with double-complex elements. More...
 

Detailed Description

Function Documentation

clblasStatus clblasChemm ( clblasOrder  order,
clblasSide  side,
clblasUplo  uplo,
size_t  M,
size_t  N,
cl_float2  alpha,
const cl_mem  A,
size_t  offa,
size_t  lda,
const cl_mem  B,
size_t  offb,
size_t  ldb,
cl_float2  beta,
cl_mem  C,
size_t  offc,
size_t  ldc,
cl_uint  numCommandQueues,
cl_command_queue *  commandQueues,
cl_uint  numEventsInWaitList,
const cl_event *  eventWaitList,
cl_event *  events 
)

Matrix-matrix product of hermitian rectangular matrices with float-complex elements.

Matrix-matrix products:

  • \( C \leftarrow \alpha A B + \beta C \)
  • \( C \leftarrow \alpha B A + \beta C \)
Parameters
[in]orderRow/column order.
[in]sideThe side of triangular matrix.
[in]uploThe triangle in matrix being referenced.
[in]MNumber of rows in matrices B and C.
[in]NNumber of columns in matrices B and C.
[in]alphaThe factor of matrix A.
[in]ABuffer object storing matrix A.
[in]offaOffset of the first element of the matrix A in the buffer object. Counted in elements.
[in]ldaLeading dimension of matrix A. It cannot be less than M when the side parameter is set to clblasLeft,
or less than N when the parameter is set to clblasRight.
[in]BBuffer object storing matrix B.
[in]offbOffset of the first element of the matrix B in the buffer object. Counted in elements.
[in]ldbLeading dimension of matrix B. It cannot be less than N when the order parameter is set to clblasRowMajor,
or less than M when it is set to clblasColumnMajor.
[in]betaThe factor of matrix C.
[out]CBuffer object storing matrix C.
[in]offcOffset of the first element of the matrix C in the buffer object. Counted in elements.
[in]ldcLeading dimension of matrix C. It cannot be less than N when the order parameter is set to clblasRowMajor,
or less than M when it is set to clblasColumnMajorOrder.
[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:
    • M or N is zero, or
    • any of the leading dimensions is invalid;
    • the matrix sizes lead to accessing outsize of any of the buffers;
  • clblasInvalidMemObject if A, B, or C object is invalid, or an image object rather than the buffer one;
  • clblasOutOfResources if you use image-based function implementation and no suitable scratch image available;
  • 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_chemm.cpp.
clblasStatus clblasZhemm ( clblasOrder  order,
clblasSide  side,
clblasUplo  uplo,
size_t  M,
size_t  N,
cl_double2  alpha,
const cl_mem  A,
size_t  offa,
size_t  lda,
const cl_mem  B,
size_t  offb,
size_t  ldb,
cl_double2  beta,
cl_mem  C,
size_t  offc,
size_t  ldc,
cl_uint  numCommandQueues,
cl_command_queue *  commandQueues,
cl_uint  numEventsInWaitList,
const cl_event *  eventWaitList,
cl_event *  events 
)

Matrix-matrix product of hermitian rectangular matrices with double-complex elements.

Matrix-matrix products:

  • \( C \leftarrow \alpha A B + \beta C \)
  • \( C \leftarrow \alpha B A + \beta C \)
Parameters
[in]orderRow/column order.
[in]sideThe side of triangular matrix.
[in]uploThe triangle in matrix being referenced.
[in]MNumber of rows in matrices B and C.
[in]NNumber of columns in matrices B and C.
[in]alphaThe factor of matrix A.
[in]ABuffer object storing matrix A.
[in]offaOffset of the first element of the matrix A in the buffer object. Counted in elements.
[in]ldaLeading dimension of matrix A. It cannot be less than M when the side parameter is set to clblasLeft,
or less than N when the parameter is set to clblasRight.
[in]BBuffer object storing matrix B.
[in]offbOffset of the first element of the matrix B in the buffer object. Counted in elements.
[in]ldbLeading dimension of matrix B. It cannot be less than N when the order parameter is set to clblasRowMajor,
or less than M when it is set to clblasColumnMajor.
[in]betaThe factor of matrix C.
[out]CBuffer object storing matrix C.
[in]offcOffset of the first element of the matrix C in the buffer object. Counted in elements.
[in]ldcLeading dimension of matrix C. It cannot be less than N when the order parameter is set to clblasRowMajor,
or less than M when it is set to clblasColumnMajorOrder.
[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 clblasChemm() function otherwise.