Developer Reference for Intel® oneAPI Math Kernel Library for C
?dgmm_batch_strided
Computes groups of matrix-vector product using general matrices.
Syntax
void cblas_sdgmm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE left_right,
const MKL_INT m, const MKL_INT n, const float *a,
const MKL_INT lda, const MKL_INT stridea, const float *x,
const MKL_INT incx, const MKL_INT stridex, float *c,
const MKL_INT ldc, const MKL_INT stridec,
const MKL_INT batch_size);
void cblas_ddgmm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE left_right,
const MKL_INT m, const MKL_INT n, const double *a,
const MKL_INT lda, const MKL_INT stridea, const double *x,
const MKL_INT incx, const MKL_INT stridex, double *c,
const MKL_INT ldc, const MKL_INT stridec,
const MKL_INT batch_size);
void cblas_cdgmm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE left_right,
const MKL_INT m, const MKL_INT n, const void *a,
const MKL_INT lda, const MKL_INT stridea, const void *x,
const MKL_INT incx, const MKL_INT stridex, void *c,
const MKL_INT ldc, const MKL_INT stridec,
const MKL_INT batch_size);
void cblas_zdgmm_batch_strided(const CBLAS_LAYOUT layout, const CBLAS_SIDE left_right,
const MKL_INT m, const MKL_INT n, const void *a,
const MKL_INT lda, const MKL_INT stridea, const void *x,
const MKL_INT incx, const MKL_INT stridex, void *c,
const MKL_INT ldc, const MKL_INT stridec,
const MKL_INT batch_size);
Include Files
mkl.h
Description
The ?dgmm_batch_stridedcblas_?dgmm_batch_strided routines perform a series of diagonal matrix-matrix product. The diagonal matrices are stored as dense vectors and the operations are performed with group of matrices and vectors.
All matrices a and c and vector x have the same parameters (size, increments) and are stored at constant stride, respectively, given by stridea , stridec , and stridex from each other. The operation is defined as
for i = 0 … batch_size – 1
A and C are matrices at offset i * stridea in a and i * stridec in c
X is a vector at offset i * stridex in x
C = diag(X) * A or C = A * diag(X)
end for
Input Parameters
- layout
-
Specifies whether two-dimensional array storage is row-major (CblasRowMajor) or column-major (CblasColMajor).
- left_right
-
Specifies the position of the diagonal matrix in the matrix product
if left_right = CblasLeft , then C = diag( X ) * A ;
if left_right = CblasRight , then C = A * diag( X ).
- m
-
Number of rows of the matrices A and C . The value of m must be at least 0.
- n
-
Number of columns of the matrices A and C . The value of n must be at least 0.
- a
-
REAL for sdgmm_batch_strided DOUBLE PRECISION for ddgmm_batch_strided COMPLEX for cdgmm_batch_strided DOUBLE COMPLEX for zdgmm_batch_strided Array holding all the input matrix A . Must be of size at least lda * k + stridea * ( batch_size -1) where k is n if column major layout is used or m if row major layout is used.
- lda
-
Specifies the leading dimension of the matrix A . It must be positive and at least m if column major layout is used or at least n if row major layout is used .
- stridea
-
Stride between two consecutive A matrices, must be at least 0.
- x
-
REAL for sdgmm_batch_strided DOUBLE PRECISION for ddgmm_batch_strided COMPLEX for cdgmm_batch_strided DOUBLE COMPLEX for zdgmm_batch_strided Array holding all the input vector x . Must be of size at least (1 + ( len -1)*abs( incx )) + stridex * ( batch_size - 1) where len is n if the diagonal matrix is on the right of the product or m otherwise.
- incx
-
Stride between two consecutive elements of the x vectors.
- stridex
-
Stride between two consecutive x vectors, must be at least 0.
- c
-
REAL for sdgmm_batch_strided DOUBLE PRECISION for ddgmm_batch_strided COMPLEX for cdgmm_batch_strided DOUBLE COMPLEX for zdgmm_batch_strided Array holding all the input matrix C . Must be of size at least batch_size * stridec .
- ldc
-
Specifies the leading dimension of the matrix C . It must be positive and at least m if column major layout is used or at least n if row major layout is used .
- stridec
-
Stride between two consecutive A matrices, must be at least ldc * n if column major layout is used or ldc * m if row major layout is used .
- batch_size
-
INTEGER . Number of dgmm computations to perform and a c matrices and x vectors. Must be at least 0.
Output Parameters
- c
-
Array holding the batch_size updated matrices c .