## Developer Reference

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

# gemm_*_compute

Computes a matrix-matrix product with general integer matrices (where one or both input matrices are stored in a packed data structure) and adds the result to a scalar-matrix product.

## Syntax

Include Files
• mkl.fi
Description
The
gemm_*_compute
routine is one of a set of related routines that enable use of an internal packed storage. After calling
gemm_*_pack
call
gemm_*_compute
to compute
C
:=
alpha
*(op(
A
) +
A_offset
)*(op(
B
) +
B_offset
) +
beta
*
C
+
C_offset
,
where:

op(
X
)
is either
op(
X
) =
X
or
op(
X
) =
X
T

alpha
and
beta
are scalars

A
,
B
, and
C
are matrices:

op(
A
)
is an
m
-by-
k
matrix,

op(
B
)
is a
k
-by-
n
matrix,

C
is an
m
-by-
n
matrix.

A_offset
is an
m
-by-
k
matrix with every element equal to the value
oa
.

B_offset
is an
k
-by-
n
matrix with every element equal to the value
ob
.

C_offset
is an
m
-by-
n
matrix defined by the
oc
array as described in the description of the
offsetc
parameter.

For best performance, use the same number of threads for packing and for computing.
If you are packing for both
A
and
B
matrices, you must use the same number of threads for packing
A
as for packing
B
.
Input Parameters
transa
CHARACTER*1
.
Specifies the form of
op(
A
)
used in the packing:
If
transa
=
'N'
or
'n'

op(
A
) =
A
.
If
transa
=
'T'
or
't'

op(
A
) =
A
T
.
If
transa
=
'P'
or
'p'
the matrix in array
a
is packed into a format internal to
Intel® MKL
and
lda
is ignored.
transb
CHARACTER*1
.
Specifies the form of
op(
B
)
used in the packing:
If
transb
=
'N'
or
'n'

op(
B
) =
B
.
If
transb
=
'T'
or
't'
op(
B
) =
B
T
.
If
transb
=
'P'
or
'p'
the matrix in array
b
is packed into a format internal to
Intel® MKL
and
ldb
is ignored.
offsetc
CHARACTER*1