clBLAS 2.0
Loading...
Searching...
No Matches
SYRK - Symmetric rank-k update of a matrix

Functions

clblasStatus clblasSsyrk (clblasOrder order, clblasUplo uplo, clblasTranspose transA, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t offA, size_t lda, cl_float 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)
 Rank-k update of a symmetric matrix with float elements. Extended version.
 
clblasStatus clblasDsyrk (clblasOrder order, clblasUplo uplo, clblasTranspose transA, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t offA, size_t lda, cl_double 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)
 Rank-k update of a symmetric matrix with double elements. Extended version.
 
clblasStatus clblasCsyrk (clblasOrder order, clblasUplo uplo, clblasTranspose transA, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t offA, size_t lda, FloatComplex 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)
 Rank-k update of a symmetric matrix with complex float elements. Extended version.
 
clblasStatus clblasZsyrk (clblasOrder order, clblasUplo uplo, clblasTranspose transA, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t offA, size_t lda, DoubleComplex 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)
 Rank-k update of a symmetric matrix with complex double elements. Extended version.
 

Detailed Description

Function Documentation

◆ clblasCsyrk()

clblasStatus clblasCsyrk ( clblasOrder order,
clblasUplo uplo,
clblasTranspose transA,
size_t N,
size_t K,
FloatComplex alpha,
const cl_mem A,
size_t offA,
size_t lda,
FloatComplex 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 )

Rank-k update of a symmetric matrix with complex float elements. Extended version.

Rank-k updates:

  • \( C \leftarrow \alpha A A^T + \beta C \)
  • \( C \leftarrow \alpha A^T A + \beta C \)

where C is a symmetric matrix.

Parameters
[in]orderRow/column order.
[in]uploThe triangle in matrix C being referenced.
[in]transAHow matrix A is to be transposed.
[in]NNumber of rows and columns in matrix C.
[in]KNumber of columns of the matrix A if it is not transposed, and number of rows otherwise.
[in]alphaThe factor of matrix A.
[in]ABuffer object storing the 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. For detailed description, see clblasSsyrk().
[in]betaThe factor of the 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.
[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;
  • clblasInvalidValue if either offA or offC exceeds the size of the respective buffer object;
  • clblasInvalidValue if transA is set to clblasConjTrans.
  • the same error codes as the clblasSsyrk() function otherwise.

◆ clblasDsyrk()

clblasStatus clblasDsyrk ( clblasOrder order,
clblasUplo uplo,
clblasTranspose transA,
size_t N,
size_t K,
cl_double alpha,
const cl_mem A,
size_t offA,
size_t lda,
cl_double 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 )

Rank-k update of a symmetric matrix with double elements. Extended version.

Rank-k updates:

  • \( C \leftarrow \alpha A A^T + \beta C \)
  • \( C \leftarrow \alpha A^T A + \beta C \)

where C is a symmetric matrix.

Parameters
[in]orderRow/column order.
[in]uploThe triangle in matrix C being referenced.
[in]transAHow matrix A is to be transposed.
[in]NNumber of rows and columns in matrix C.
[in]KNumber of columns of the matrix A if it is not transposed, and number of rows otherwise.
[in]alphaThe factor of matrix A.
[in]ABuffer object storing the 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. For detailed description, see clblasSsyrk().
[in]betaThe factor of the 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.
[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;
  • clblasInvalidValue if either offA or offC exceeds the size of the respective buffer object;
  • the same error codes as the clblasSsyrk() function otherwise.

◆ clblasSsyrk()

clblasStatus clblasSsyrk ( clblasOrder order,
clblasUplo uplo,
clblasTranspose transA,
size_t N,
size_t K,
cl_float alpha,
const cl_mem A,
size_t offA,
size_t lda,
cl_float 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 )

Rank-k update of a symmetric matrix with float elements. Extended version.

Rank-k updates:

  • \( C \leftarrow \alpha A A^T + \beta C \)
  • \( C \leftarrow \alpha A^T A + \beta C \)

where C is a symmetric matrix.

Parameters
[in]orderRow/column order.
[in]uploThe triangle in matrix C being referenced.
[in]transAHow matrix A is to be transposed.
[in]NNumber of rows and columns in matrix C.
[in]KNumber of columns of the matrix A if it is not transposed, and number of rows otherwise.
[in]alphaThe factor of matrix A.
[in]ABuffer object storing the 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 K if A is in the row-major format, and less than N otherwise.
[in]betaThe factor of the 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 matric C. It cannot be less than N.
[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;
  • clblasInvalidValue if either offA or offC exceeds the size of the respective buffer object;
  • the same error codes as the clblasSsyrk() function otherwise.
Examples
example_ssyrk.c.

◆ clblasZsyrk()

clblasStatus clblasZsyrk ( clblasOrder order,
clblasUplo uplo,
clblasTranspose transA,
size_t N,
size_t K,
DoubleComplex alpha,
const cl_mem A,
size_t offA,
size_t lda,
DoubleComplex 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 )

Rank-k update of a symmetric matrix with complex double elements. Extended version.

Rank-k updates:

  • \( C \leftarrow \alpha A A^T + \beta C \)
  • \( C \leftarrow \alpha A^T A + \beta C \)

where C is a symmetric matrix.

Parameters
[in]orderRow/column order.
[in]uploThe triangle in matrix C being referenced.
[in]transAHow matrix A is to be transposed.
[in]NNumber of rows and columns in matrix C.
[in]KNumber of columns of the matrix A if it is not transposed, and number of rows otherwise.
[in]alphaThe factor of matrix A.
[in]ABuffer object storing the 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. For detailed description, see clblasSsyrk().
[in]betaThe factor of the 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.
[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;
  • clblasInvalidValue if either offA or offC exceeds the size of the respective buffer object;
  • clblasInvalidValue if transA is set to clblasConjTrans.
  • the same error codes as the clblasSsyrk() function otherwise.