产品 |
是否支持 |
|---|---|
Ascend 950PR/Ascend 950DT |
√ |
x |
|
x |
|
x |
|
x |
|
x |
|
x |
MxMatmul场景,设置矩阵乘中右矩阵的量化系数矩阵scaleB。
1 | __aicore__ inline void SetTensorScaleB(const GlobalTensor<ScaleT>& gm, bool isTransposeScaleB = true); |
1 | __aicore__ inline void SetTensorScaleB(const LocalTensor<ScaleT>& rightMatrix, bool isTransposeScaleB = true); |
参数名 |
输入/输出 |
描述 |
|---|---|---|
gm |
输入 |
量化系数scaleB矩阵。类型为GlobalTensor。支持的数据类型为:fp8_e8m0_t。 |
rightMatrix |
输入 |
量化系数scaleB矩阵。类型为LocalTensor,支持的TPosition为TSCM/VECOUT。支持的数据类型为:fp8_e8m0_t。 |
isTransposeScaleB |
输入 |
scaleB矩阵是否需要转置。 参数支持的取值如下:
注意:
对于有Bias输入的场景,为了确保Tiling侧与Kernel侧L1 Buffer空间计算大小保持一致及结果精度正确,该参数取值必须与Kernel侧定义B矩阵MatmulTypeWithScale的SCALE_ISTRANS参数以及Tiling侧SetScaleBType()接口的isScaleTrans参数保持一致,即有Bias输入的场景,上述三个参数必须同时设置为true或同时设置为false。 |
无
1 2 3 4 5 6 7 8 9 10 | REGIST_MATMUL_OBJ(&pipe, GetSysWorkSpacePtr(), mm, &tiling); mm.SetTensorA(gm_a); mm.SetTensorB(gm_b); mm.SetTensorScaleA(gm_scaleA); mm.SetTensorScaleB(gm_scaleB); // 设置右矩阵的量化系数矩阵scaleB if (tiling.isBias) { mm.SetBias(gmBias); } mm.IterateAll(gm_c); mm.End(); |