Contents

# cblas_?gemm_batch_strided

Computes groups of matrix-matrix product with general matrices.

## Syntax

Include Files
• mkl.h
Description
The
cblas_?gemm_batch_strided
routines perform a series of matrix-matrix operations with general matrices. They are similar to the
cblas_?gemm
routine counterparts, but the
cblas_?gemm_batch_strided
routines perform matrix-matrix operations with groups of matrices. The groups contain matrices with the same parameters.
All matrix
a
(respectively,
b
or
c
) have the same parameters (size, leading dimension, transpose operation, alpha, beta scaling) and are stored at constant
stridea
(respectively,
strideb
or
stridec
) from each other. The operation is defined as
```For i = 0 … batch_size – 1
Ai, Bi and Ci are matrices at offset i * stridea, i * strideb and i * stridec in a, b and c
Ci = alpha * Ai * Bi +  beta * Ci
end for```
Input Parameters
layout
Specifies whether two-dimensional array storage is row-major (CblasRowMajor) or column-major (CblasColMajor).
transa
Specifies op(A) the transposition operation applied to the matrices
A
.
if
transa
=
CblasNoTrans
, then op(A) = A;
if
transa
=
CblasTrans
, then op(A) = A
T
;
if
transa
=
CblasConjTrans
, then op(A) = A
H
.
transb
Specifies op(B) the transposition operation applied to the matrices
B
.
if
transb
=
CblasNoTrans
, then op(B) = B;
if
transb
=
CblasTrans
, then op(B) = B
T
;
if
transb
=
CblasConjTrans
, then op(B) = B
H
.
m
Number of rows of the op(A) and
C
matrices. Must be at least 0.
n
Number of columns of the op(B) and
C
matrices. Must be at least 0.
k
Number of columns of the op(A) matrix and number of rows of the op(B) matrix. Must be at least 0.
alpha
Specifies the scalar
alpha
.
a
Array of size at least
stridea
*
batch_size
holding the
a
matrices.
 transa=CblasNoTrans transa=CblasTrans or CblasConjTrans layout = CblasColMajor Before entry, the leading m-by-k part of the array a + i * stridea must contain the matrix Ai. Before entry, the leading k-by-m part of the array a + i * stridea must contain the matrix Ai. layout = CblasRowMajor Before entry, the leading k-by-m part of the array a + i * stridea must contain the matrix Ai. Before entry, the leading m-by-k part of the array a + i * stridea must contain the matrix Ai.
lda
Specifies the leading dimension of the
a
matrices.
 transa=CblasNoTrans transa=CblasTrans or CblasConjTrans layout = CblasColMajor lda must be at least max(1,m) lda must be at least max(1,k). layout = CblasRowMajor lda must be at least max(1,k). lda must be at least max(1,m)
stridea
Stride between two consecutive
a
matrices.
 transa=CblasNoTrans transa=CblasTrans or CblasConjTrans layout = CblasColMajor Must be at least lda*k Must be at least lda*m layout = CblasRowMajor Must be at least lda*m Must be at least lda*k
b
Array of size at least
strideb
*
batch_size
holding the
b
matrices.
 transb=CblasNoTrans transb=CblasTrans or CblasConjTrans layout = CblasColMajor Before entry, the leading k-by-n part of the array b + i * strideb must contain the matrix Bi. Before entry, the leading n-by-k part of the array b + i * strideb must contain the matrix Bi. layout = CblasRowMajor Before entry, the leading n-by-k part of the array b + i * strideb must contain the matrix Bi. Before entry, the leading k-by-n part of the array b + i * strideb must contain the matrix Bi.
ldb
Specifies the leading dimension of the
b
matrices.
 transab=CblasNoTrans transb=CblasTrans or CblasConjTrans layout = CblasColMajor ldb must be at least max(1,k) ldb must be at least max(1,n). layout = CblasRowMajor ldb must be at least max(1,n). ldb must be at least max(1,k)
strideb
Stride between two consecutive
b
matrices.
 transa=CblasNoTrans transa=CblasTrans or CblasConjTrans layout = CblasColMajor Must be at least ldb*n Must be at least ldb*k layout = CblasRowMajor Must be at least ldb*k Must be at least ldb*n
beta
Specifies the scalar
beta
.
c
Array of size at least
stridec
*
batch_size
holding the
c
matrices.
If layout=CblasColMajor, before entry, the leading
m
-by-
n
part of the array
c
+ i *
stridec
must contain the matrix
C
i
.
If layout=CblasRowMajor, before entry, the leading
n
-by-
m
part of the array
c
+ i *
stridec
must contain the matrix
C
i
.
ldc
Specifies the leading dimension of the
c
matrices.
Must be at least max(1,
m
)
if layout=CblasColMajor or max(1,
n
) if layout=CblasRowMajor
.
stridec
Specifies the stride between two consecutive
c
matrices.
Must be at least ldc*
n
if layout=CblasColMajor or ldc*
m
if layout=CblasRowMajor
.
batch_size
Number of
gemm
computations to perform and
a
,
b
and
c
matrices. Must be at least 0.
Output Parameters
c
Array holding the
batch_size
updated
c
matrices.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.