aclnnAlltoAllQuantMatmul
产品支持情况
功能说明
接口功能:完成AlltoAll通信、Permute(保证通信后地址连续)、Quant、Matmul和Dequant计算的融合,先通信后计算。
计算公式:假设x1输入shape为(BS, H)
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:
动态量化场景:
全量化场景:
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:
函数原型
每个算子分为,必须先调用 “aclnnAlltoAllQuantMatmulGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnAlltoAllQuantMatmul”接口执行计算。
[object Object]
[object Object]
aclnnAlltoAllQuantMatmulGetWorkspaceSize
参数说明:
[object Object]x1QuantMode、x2QuantMode、commQuantMode的枚举值跟关系如下:
- 0: 不量化
- 1: pertensor
- 2: perchannel
- 3: pertoken
- 4: pergroup
- 5: perblock
- 6: mx量化
- 7: pertoken动态量化
返回值
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnAlltoAllQuantMatmul
约束说明
- 默认支持确定性计算。
- NPU卡数(rankSize),根据设备型号有不同限制:
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:支持2、4、8卡。
- 参数说明中shape使用的变量BS必须整除rankSize。
- BS和N的值不得超过2147483647(INT32_MAX)。
- 不支持空tensor。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]不支持x2为非连续tensor。
- 传入的x1、x2、x2Scale和output不为空指针,且
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:biasOptional不支持传入空指针。
- 该算子输入输出的数据类型、数据维度和量化模式根据不同设备型号有不同的限制:
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:
- 量化模式:
- 目前支持左矩阵perToken量化和perToken动态量化,x1QuantMode=3或7;右矩阵perChannel量化,x2QuantMode=2。
- 类型约束:
- x1、alltoAllOutOptional的数据类型必须一致。
- x1QuantDtype仅支持配置2(表示aclDataType.ACL_INT8)。
- A16W8和A16W4时,smoothQuant场景,x1ScaleOptional与x1的数据类型必须一致。
- A16W8时,x1、x2、biasOptional和output支持的数据类型组合有:
[object Object]undefined
- A16W4时,x1、x2、biasOptional和output支持的数据类型组合有:
[object Object]undefined
- A4W4时,x1、x2、biasOptional和output支持的数据类型组合有:
[object Object]undefined
- 维度约束:
- A16W8时,rankSize * H必须整除16;rankSize * H取值范围:[1, 35000]。
- A16W4时,rankSize * H必须整除16;N必须为偶数; rankSize * H取值范围:[1, 35000]。
- A4W4时,H与N必须为偶数;rankSize * H取值范围:[1, 35000]。
- 量化模式:
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:
- 通算融合算子不支持并发调用,不同的通算融合算子也不支持并发调用。
- 不支持跨超节点通信,只支持超节点内。
调用示例
示例代码如下,仅供参考,具体编译和执行过程请参考编译与运行样例。
说明:本示例代码调用了部分HCCL集合通信库接口:HcclGetCommName、HcclCommInitAll、HcclCommDestroy, 请参考。
[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:
[object Object]