SetTensorScaleB
产品支持情况
|
产品 |
是否支持 |
|---|---|
|
Atlas 350 加速卡 |
√ |
|
|
x |
|
|
x |
|
|
x |
|
|
x |
|
|
x |
|
|
x |
函数原型
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。 Atlas 350 加速卡,支持的数据类型为:fp8_e8m0_t |
|
rightMatrix |
输入 |
量化系数scaleB矩阵。类型为LocalTensor,支持的TPosition为TSCM/VECOUT。 Atlas 350 加速卡,支持的数据类型为:fp8_e8m0_t |
|
isTransposeScaleB |
输入 |
scaleB矩阵是否需要转置。 参数支持的取值如下:
注意:
对于有Bias输入的场景,为了确保Tiling侧与Kernel侧L1 Buffer空间计算大小保持一致及结果精度正确,该参数取值必须与Kernel侧定义B矩阵MatmulMxType的SCALE_ISTRANS参数以及Tiling侧SetScaleBType()接口的isScaleTrans参数保持一致,即有Bias输入的场景,上述三个参数必须同时设置为true或同时设置为false。 |
返回值说明
无
约束说明
- 传入的scaleB地址空间大小必须不小于singleCoreK*singleCoreN/32。
- 当使能MixDualMaster(双主模式)场景时,即模板参数enableMixDualMaster设置为true,不支持使用该接口。
调用示例
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(); |