aclnnMatmulReduceScatterV2
产品支持情况
功能说明
接口功能: aclnnMatmulReduceScatterV2接口是对aclnnMatmulReduceScatter接口的功能扩展,在支持x1和x2输入类型为FLOAT16/BFLOAT16的基础上,
计算公式:
- 情形1:如果x1和x2数据类型为FLOAT16/BFLOAT16时,入参x1、x2进行matmul计算后,进行ReduceScatter通信。
情形2:如果x1和x2数据类型为FLOAT8_E4M3FN/FLOAT8_E5M2/HIFLOAT8的pertensor场景,或者x1和x2数据类型为INT8的perchannel、pertoken场景,且不输出amaxOut,入参x1、x2进行matmul计算和dequant计算后,进行ReduceScatter通信。
情形3:如果x1和x2数据类型为FLOAT8_E4M3FN/FLOAT8_E5M2/HIFLOAT8的perblock场景,且不输出amaxOut,当x1为(a0, a1)、x2为(b0, b1)时, x1Scale为(ceildiv(a0, 128), ceildiv(a1, 128))、x2Scale为(ceildiv(b0, 128), ceildiv(b1, 128))时,入参x1、x2进行matmul计算和dequant计算后,再进行ReduceScatter通信。
情形4:如果x1和x2数据类型为FLOAT8_E4M3FN/FLOAT8_E5M2的mx量化场景,且不输出amaxOut,当x1为(a0, a1)、x2为(b0, b1)时, x1Scale为(a0, ceildiv(a1, 64), 2)、x2Scale为(b0, ceildiv(b1, 64), 2)时,入参x1、x2进行matmul计算和dequant计算后,再进行ReduceScatter通信。
函数原型
每个算子分为两段式接口,必须先调用[object Object]接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用[object Object]接口执行计算。
aclnnMatmulReduceScatterV2GetWorkspaceSize
参数说明:
[object Object]- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
- x1、x2:在commMode为aicpu时,数据类型支持FLOAT16、BFLOAT16;commMode为aiv时,数据类型支持FLOAT16、BFLOAT16、INT8。
- bias:在commMode为aicpu时,数据类型支持FLOAT16、BFLOAT16,仅支持为0的输入。在commMode为aiv时,当前版本仅支持输入nullptr。
- x1Scale:在commMode为aicpu时,仅支持输入nullptr。在commMode为aiv时,数据类型支持FLOAT。当x1和x2数据类型为FLOAT16/BFLOAT16时,仅支持输入为nullptr。在pertoken场景,shape为(m, 1)。
- x2Scale:在commMode为aicpu时,仅支持输入nullptr。在commMode为aiv时,数据类型支持FLOAT、INT64,数据格式支持ND。INT64数据类型仅在output数据类型为FLOAT16场景支持。当x1和x2数据类型为FLOAT16、BFLOAT16时,仅支持输入为nullptr。在perchannel场景,shape为(1, n)。
- groupSize:当前版本仅支持输入为0。
- commMode:当前仅支持aiv模式。aiv模式下使用AI VECTOR核完成通信任务。当前版本仅支持输入“aiv”。
- output:数据类型支持FLOAT16、BFLOAT16。 如果x1类型为FLOAT16、BFLOAT16,则output类型与x1保持一致。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
返回值
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnMatmulReduceScatterV2
约束说明
- 确定性计算:
[object Object]默认非确定性实现,支持通过[object Object]开启确定性。
- [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:
- 只支持x2矩阵转置/不转置,x1矩阵仅支持不转置场景。
- 输入x1为2维,其shape为(m, k),m须为卡数rank_size的整数倍。
- 输入x2必须是2维,其shape为(k, n),轴满足mm算子入参要求,k轴相等,且k轴取值范围为[256, 65535)。
- bias为1维,shape为(n,)。
- 输出为2维,其shape为(m/rank_size, n), rank_size为卡数。
- 不支持空tensor。
- x1和x2的数据类型需要保持一致。
- 支持2、4、8卡。
调用示例
说明:本示例代码调用了部分HCCL集合通信库接口:HcclGetCommName、HcclCommInitAll、HcclCommDestroy, 请参考。