Developer Reference for Intel® oneAPI Math Kernel Library for C
?gemm_pack_get_size , gemm_*_pack_get_size
Returns the number of bytes required to store the packed matrix.
Syntax
size_t cblas_hgemm_pack_get_size(const CBLAS_IDENTIFIER identifier, const MKL_INT m,
const MKL_INT n, const MKL_INT k)
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)
size_t cblas_gemm_f16f16f32_pack_get_size(const CBLAS_IDENTIFIER identifier, const MKL_INT m,
const MKL_INT n, const MKL_INT k)
size_t cblas_gemm_e5m2e5m2f32_pack_get_size(const CBLAS_IDENTIFIER identifier, const MKL_INT m,
const MKL_INT n, const MKL_INT k)
size_t cblas_gemm_e4m3e4m3f32_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 \leftarrow \alpha \cdot op(A)\cdot op(B) + \beta\cdot C\) for bfloat16, half, single and double precision or \(C \leftarrow \alpha (op(A)+ A_offset)\cdot(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_{\text{offset}}\) , \(B\) , \(B_{\text{offset}}\) , \(C\) , and \(C_{\text{offset}}\) are matrices. \(op(A)\) is an \(m\) -by- \(k\) matrix, \(op(B)\) is a \(k\) -by- \(n\) matrix and \(C\) is an \(m\) -by- \(n\) matrix. A_{text{offset}} is an \(m\) -by- \(k\) matrix. \(B_{\text{offset}}\) is an \(k\) -by- \(n\) matrix. \(C_{\text{offset}}\) is an \(m\) -by- \(n\) matrix.
Input Parameters
Parameter |
Type |
Description |
|---|---|---|
identifier |
CBLAS_IDENTIFIER |
Specifies which matrix is to be packed: If identifier = 'A' or 'a' CblasAMatrix , the size returned is the size required to store matrix A in an internal format. If identifier = 'B' or 'b' 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® oneAPI Math Kernel Library (oneMKL) . |