aclnnGroupedMatmulFinalizeRoutingV3
产品支持情况
功能说明
接口功能: GroupedMatmul和MoeFinalizeRouting的融合算子,GroupedMatmul计算后的输出按照索引做combine动作。
本接口相较于,新增入参tuningConfigOptional,调优参数。数组中的第一个值表示各个专家处理的token数的预期值,算子tiling时会按照该预期值合理进行tiling切分,性能更优。请根据实际情况选择合适的接口。
计算公式:
1.分组矩阵乘法GMM:
2.路由专家与专家输出分配:
对于每个token j,执行路由与输出专家分配:
其中 是 token j被分配到的专家索引。是该token在对应专家下的计算结果。
3.共享专家输出融合:
4.共享专家输出融合:最终输出结果是所有专家输出与共享专家输出,按照rowIndex所有进行合并的结果,计算过程如下:
其中是表示分配给token j的专家集合。
函数原型
每个算子分为,必须先调用“aclnnGroupedMatmulFinalizeRoutingV3GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnGroupedMatmulFinalizeRoutingV3”接口执行计算。
aclnnGroupedMatmulFinalizeRoutingV3GetWorkspaceSize
参数说明
[object Object][object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
- x1仅支持INT8。维度为(m, k),维度m的取值范围为[1,16*1024*8],k支持2048;
- x2仅支持INT4。当输入为INT32时维度为(e, k, n / 8),输入转为INT4时维度为(e, k, n),e取值范围[1,256],k支持2048,n支持7168。
- scaleOptional支持INT64。shape支持三维,维度为(e, 1, n),e、n和w的e、n一致。
- biasOptional支持FLOAT32。e、n和w的e、n一致。
- offsetOptional支持FLOAT32。shape支持三维,维度为(e, 1, n),e、n和w的e、n一致。
- perTokenScaleOptional支持FLOAT32。支持一维,维度为(m),m和x的m一致。
- groupListOptional支持e和w的e一致。
- sharedInputOptional支持二维,维度为(bsdp,n),bsdp必须小于等于batchSize/e,n和w的n一致。
- logitOptional支持m和x的m一致。
- rowIndexOptional支持m和x的m一致。
- x1、x2、groupListOptional是必选参数,scaleOptional、pertokenScaleOptional、logitOptional、rowIndexOptional、biasOptional,sharedInputOptional是可选参数。
返回值
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnGroupedMatmulFinalizeRoutingV3
约束说明
确定性计算:
- aclnnGroupedMatmulFinalizeRoutingV3默认非确定性实现,[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]支持通过aclrtCtxSetSysParamOpt开启确定性。
伪量化场景支持类型输入和输出支持以下数据类型组合:
[object Object]undefined
- 在该场景中,scaleOptional代表per-channel和per-group离线融合的结果。
- 在该场景中,biasOptional代表离线计算的辅助结果,值要求为,并在第一维累加。
- 该场景支持对称量化和非对称量化。在对称量化时,offsetOptional需要设置为空;在非对称量化时,offsetOptional代表离线计算的辅助结果,即为的结果。
- 在该场景中,antiquantScaleOptional、antiquantOffsetOptional必须设置为空。
调用示例
在[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]上示例代码如下,仅供参考,具体编译和执行过程请参考。