---
title: gemm_s8u8s32_pack
description: "对矩阵进行pack操作并将其存储到已分配的缓冲区中。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1145.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1145.html
indexId: 5cb04dff5c3bc655683ee4acb86e6886b28eddb388d68bfee4f46508f6dd3d7f61
---
# gemm_s8u8s32_pack

对矩阵进行pack操作并将其存储到已分配的缓冲区中。

即：。

op(X)可取值：，alpha，beta为乘法系数，op(A)为m*k矩阵，op(B)为k*n矩阵，C为m*n矩阵。

#### 接口定义

C interface：

void cblas_gemm_s8u8s32_pack(const CBLAS_ORDER order, const enum CBLAS_IDENTIFIER identifier,

const CBLAS_TRANSPOSE trans, const BLASINT m, const BLASINT n, const BLASINT k,

const void *src, const BLASINT ld, void *dst);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| order | 枚举类型CBLAS\_ORDER | 表示矩阵是行主序或列主序。 | 输入 |
| identifier | 枚举类型CBLAS\_IDENTIFIER | 指定要pack的矩阵。 如果identifier= CblasA，pack A矩阵。 如果identifier= CblasB，pack B矩阵。 | 输入 |
| trans | 枚举类型CBLAS\_TRANSPOSE | 矩阵A为常规矩阵，转置矩阵。 如果trans= CblasNoTrans，。 如果trans= CblasTrans，。 矩阵B为常规矩阵，转置矩阵。 如果trans= CblasNoTrans，。 如果trans= CblasTrans，。 | 输入 |
| m | 整型数 | 矩阵op(A)和矩阵C的行。 | 输入 |
| n | 整型数 | 矩阵op(B)和矩阵C的列。 | 输入 |
| k | 整型数 | 矩阵op(A)的列和矩阵op(B)的行。 | 输入 |
| src | int8类型。 | 矩阵A\B。 | 输入 |
| ld | 整型数 | 矩阵为列存，identifier = CblasA, trans = CblasNoTrans，ld至少max(1, m)，否则max(1, k)。 矩阵为行存，identifier = CblasA, trans = CblasNoTrans，ld至少max(1, k)，否则max(1, m)。 矩阵为列存，identifier = CblasB, trans = CblasNoTrans，ld至少max(1, k)，否则max(1, n)。 矩阵为行存，identifier = CblasB, trans = CblasNoTrans，ld至少max(1, n)，否则max(1, k)。 | 输入 |
| dst | int8类型 | pack后的矩阵A\B。 | 输入/输出 |


#### 依赖

#include "kblas.h"


#### 示例

参见gemm_?8?8s32_compute示例
