Developer Reference

Contents

cblas_?gemm_pack_get_size
,
cblas_gemm_*_pack_get_size

Returns the number of bytes required to store the packed matrix.

Syntax

size_t cblas_sgemm_pack_get_size
(
const
CBLAS_IDENTIFIER
identifier
,
const
MKL_INT
m
,
const
MKL_INT
n
,
const
MKL_INT
k
)
size_t cblas_dgemm_pack_get_size
(
const
CBLAS_IDENTIFIER
identifier
,
const
MKL_INT
m
,
const
MKL_INT
n
,
const
MKL_INT
k
)
size_t cblas_gemm_s8u8s32_pack_get_size
(
const
CBLAS_IDENTIFIER
identifier
,
const
MKL_INT
m
,
const
MKL_INT
n
,
const
MKL_INT
k
)
size_t cblas_gemm_s16s16s32_pack_get_size
(
const
CBLAS_IDENTIFIER
identifier
,
const
MKL_INT
m
,
const
MKL_INT
n
,
const
MKL_INT
k
)
size_t cblas_gemm_bf16bf16f32_pack_get_size
(
const
CBLAS_IDENTIFIER
identifier
,
const
MKL_INT
m
,
const
MKL_INT
n
,
const
MKL_INT
k
)
Include Files
  • mkl.h
Description
The
cblas_?gemm_pack_get_size
and
cblas_gemm_*_pack_get_size
routines belong to a set of related routines that enable the use of an internal packed storage. Call the
cblas_?gemm_pack_get_size
and
cblas_gemm_*_pack_get_size
routines first to query the size of storage required for a packed matrix structure to be used in subsequent calls. Ultimately, the packed matrix structure is used to compute
C
:=
alpha
*op(
A
)*op(
B
) +
beta
*
C
for bfloat16, single and double precision or
C
:=
alpha
*(op(
A
)+
A_offset
)*(op(
B
)+
B_offset
) +
beta
*
C
+
C_offset
for integer type.
where:

    op(
    X
    )
    is one of the operations
    op(
    X
    ) =
    X
    or
    op(
    X
    ) =
    X
    T

    alpha
    and
    beta
    are scalars,

    A
    ,
    A_offset
    ,
    B
    ,
    B_offset
    ,
    C
    , and
    C_offset
    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.

    B_offset
    is an
    k
    -by-
    n
    matrix.

    C_offset
    is an
    m
    -by-
    n
    matrix.

Input Parameters
Parameter
Type
Description
identifier
CBLAS_IDENTIFIER
Specifies which matrix is to be packed:
If
identifier
=
CblasAMatrix
, the size returned is the size required to store matrix
A
in an internal format.
If
identifier
=
CblasBMatrix
, the size returned is the size required to store matrix
B
in an internal format.
m
MKL_INT
Specifies the number of rows of matrix op(
A
) and of the matrix
C
. The value of
m
must be at least zero.
n
MKL_INT
Specifies the number of columns of matrix op(
B
) and the number of columns of matrix
C
. The value of
n
must be at least zero.
k
MKL_INT
Specifies the number of columns of matrix op(
A
) and the number of rows of matrix op(
B
). The value of
k
must be at least zero.
Return Values
Parameter
Type
Description
size
size_t
Returns the size (in bytes) required to store the matrix when packed into the internal format of
Intel® MKL
.

Example

See the following examples in the MKL installation directory to understand the use of these routines:
cblas_sgemm_pack_get_size: examples\cblas\source\cblas_sgemm_computex.c
cblas_dgemm_pack_get_size: examples\cblas\source\cblas_dgemm_computex.c
cblas_gemm_s8u8s32_pack_get_size: examples\cblas\source\cblas_gemm_s8u8s32_computex.c
cblas_gemm_s16u16s32_pack_get_size: examples\cblas\source\cblas_gemm_s16s16s32_computex.c
cblas_gemm_bf16bf16f32_pack_get_size: examples\cblas\source\cblas_gemm_bf16bf16f32_computex.c

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804