Developer Reference

  • 098
  • 03/30/2020
  • Public Content
Contents

?gemm3m_batch

Computes scalar-matrix-matrix products and adds the results to scalar matrix products for groups of general matrices.

Syntax

call cgemm3m_batch
(
transa_array
,
transb_array
,
m_array
,
n_array
,
k_array
,
alpha_array
,
a_array
,
lda_array
,
b_array
,
ldb_array
,
beta_array
,
c_array
,
ldc_array
,
group_count
,
group_size
)
call zgemm3m_batch
(
transa_array
,
transb_array
,
m_array
,
n_array
,
k_array
,
alpha_array
,
a_array
,
lda_array
,
b_array
,
ldb_array
,
beta_array
,
c_array
,
ldc_array
,
group_count
,
group_size
)
call cgemm3m_batch
(
a_array
,
b_array
,
c_array
,
m_array
,
n_array
,
k_array
,
group_size
[
,
transa_array
]
[
,
transb_array
]
[
,
alpha_array
]
[
,
beta_array
]
)
call zgemm3m_batch
(
a_array
,
b_array
,
c_array
,
m_array
,
n_array
,
k_array
,
group_size
[
,
transa_array
]
[
,
transb_array
]
[
,
alpha_array
]
[
,
beta_array
]
)
Include Files
  • mkl.fi
    ,
    blas.f90
Description
The
?gemm3m_batch
routines perform a series of matrix-matrix operations with general matrices. They are similar to the
?gemm3m
routine counterparts, but the
?gemm3m_batch
routines perform matrix-matrix operations with groups of matrices, processing a number of groups at once. The groups contain matrices with the same parameters. The
?gemm3m_batch
routines use fewer matrix multiplications than the
?gemm_batch
routines, as described in the
Application Notes
.
The operation is defined as
idx = 1 for i = 1..group_count alpha and beta in alpha_array(i) and beta_array(i) for j = 1..group_size(i) A, B, and C matrix in a_array(idx), b_array(idx), and c_array(idx) C := alpha*op(A)*op(B) + beta*C, idx = idx + 1 end for end for
where:
op(
X
)
is one of
op(
X
) =
X
, or
op(
X
) =
X
T
, or
op(
X
) =
X
H
,
alpha
and
beta
are scalar elements of
alpha_array
and
beta_array
,
A
,
B
and
C
are matrices such that for
m
,
n
, and
k
which are elements of
m_array
,
n_array
, and
k_array
:
op(
A
)
is an
m
-by-
k
matrix,
op(
B
)
is a
k
-by-
n
matrix,
C
is an
m
-by-
n
matrix.
A
,
B
, and
C
represent matrices stored at addresses pointed to by
a_array
,
b_array
, and
c_array
, respectively. The number of entries in
a_array
,
b_array
, and
c_array
is
total_batch_count
= the sum of all the
group_size
entries.
See also gemm for a detailed description of multiplication for general matrices and gemm_batch, BLAS-like extension routines for similar matrix-matrix operations.
Error checking is not performed for
Intel® MKL
Windows* single dynamic libraries for the
?gemm3m_batch
routines.
Input Parameters
transa_array
CHARACTER*1
.
Array of size
group_count
. For the group
i
,
transa
i
=
transa_array
(
i
)
specifies the form of
op(
A
)
used in the matrix multiplication:
if
transa
i
= 'N'
or
'n'
, then
op(
A
) =
A
;
if
transa
i
= 'T'
or
't'
, then
op(
A
) =
A
T
;
if
transa
i
= 'C'
or
'c'
, then
op(
A
) =
A
H
.
transb_array
CHARACTER*1
.
Array of size
group_count
. For the group
i
,
transb
i
=
transb_array
(
i
)
specifies the form of
op(
B