Matmul特性场景

除了前述介绍的Matmul基本计算能力外,还请掌握Matmul的基础知识和算子实现。另外,Matmul矩阵编程还提供了适用于不同场景的处理能力及多种功能,具体场景和使用的关键接口或参数列于下表中,详细内容请见对应章节的介绍。

表1 Matmul功能特性表

特性描述

涉及的关键API或参数

多核对齐切分

SetDim、EnableMultiCoreSplitK(多核切K场景)

多核非对齐切分

SetTail、SetDim、EnableMultiCoreSplitK(多核切K场景)

异步场景处理

Iterate、GetTensorC、IterateAll

矩阵乘输出的量化/反量化

SetDequantType、SetQuantScalar、SetQuantVector

自定义数据搬入搬出

MatmulCallBackFunc、SetUserDefInfo、SetSelfDefineData

矩阵乘输出的Channel拆分

MatmulConfig模板参数中的isEnableChannelSplit参数

矩阵向量乘

SetAType

4:2稀疏矩阵乘

SetSparse、SetSparseIndex

上三角/下三角矩阵乘

MatmulPolicy模板参数

TSCM输入的矩阵乘

DataCopy

矩阵乘输出的N方向对齐

SetCType

单次矩阵乘局部输出

MatmulConfig模板参数中的isPartialOutput参数

AIC和AIV独立运行机制

MatmulConfig模板参数中的enableMixDualMaster参数

MxMatmul场景

SetScaleAType、SetScaleBType、SetMadType、SetTensorScaleA、SetTensorScaleB

表2 BatchMatmul功能特性表

特性描述

主要涉及的API接口

BatchMatmul基础场景

NORMAL排布格式的BatchMatmul:IterateBatch、SetBatchInfoForNormal

BSNGD、SBNGD、BNGS1S2排布格式的BatchMatmul:IterateBatch、SetALayout、SetBLayout、SetCLayout、SetBatchNum

Batch Matmul复用Bias矩阵

GetMMConfig、IterateBatch、SetBatchInfoForNormal