BatchMatMulV3
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
| Kirin X90 处理器系列产品 | √ |
| Kirin 9030 处理器系列产品 | √ |
功能说明
-
算子功能:完成带batch的矩阵乘计算。
-
计算公式:
out=self@mat2+biasout = self@mat2 + bias
其中,selfself,mat2mat2 输入维度支持2~6维,最后两维做矩阵乘计算。例如,selfself,mat2mat2 输入维度分别为(B,M,K)(B, M, K),(B,K,N)(B, K, N) 时,outout 维度为 (B,M,N)(B, M, N)。biasbias 是维度为(B,1,N)(B, 1, N)的向量。其中,B为矩阵乘法的batch数,M为第一个张量selfself的行数和输出张量outout的行数,N为第二个张量mat2mat2的列数和输出张量outout的列数,K为第一个张量selfself的列数和第二个张量mat2mat2的行数。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| self | 输入 | 矩阵乘运算中的左矩阵。 | FLOAT16、BFLOAT16、FLOAT32 | ND、FRACTAL_NZ |
| mat2 | 输入 | 矩阵乘运算中的右矩阵。 | FLOAT16、BFLOAT16、FLOAT32 | ND、FRACTAL_NZ |
| bias | 输入 | 矩阵乘运算后累加的偏置,对应公式中的bias。 | FLOAT16、BFLOAT16、FLOAT32 | ND |
| out | 输出 | 通用矩阵乘运算的计算结果。 | FLOAT16、BFLOAT16、FLOAT32 | ND、FRACTAL_NZ |
- Atlas A2 训练系列产品/Atlas A2 推理系列产品、Atlas A3 训练系列产品/Atlas A3 推理系列产品:bias不支持BFLOAT16数据格式。
- Atlas 推理系列产品:只支持FLOAT16数据格式,输入mat2只支持FRACTAL_NZ格式。
- Kirin X90/Kirin 9030处理器系列产品:不支持BFLOAT16、FLOAT32。
约束说明
- 支持空tensor,空tensor场景下不支持bias。
- 支持连续tensor,非连续tensor只支持转置场景。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_batchmatmul | 通过 aclnnAddbmm&aclnnInplaceAddbmm aclnnBaddbmm&aclnnInplaceBaddbmm aclnnBatchMatMul aclnnBatchMatMulWeightNz 等方式调用BatchMatMulV3算子。 |