aclnnAddbmm&aclnnInplaceAddbmm
产品支持情况
功能说明
接口功能:首先进行batch1、batch2的矩阵乘计算,然后将该结果按照第一维(batch维度)批处理相加,将三维向量压缩为二维向量(shape大小为后两维的shape),然后该结果与α作乘积计算,再与β和self的乘积求和得到结果。
计算公式:
注意:如果β为0,则self会被忽略,不参与计算。如果α为0,则batch1和batch2会被忽略,不参与计算。
示例:
self的shape是[3,5],batch1的shape是[10,3,4],batch2的shape是[10,4,5],计算输出out的shape是[3,5]。
函数原型
- aclnnAddbmm和aclnnInplaceAddbmm实现相同的功能,使用区别如下,请根据自身实际场景选择合适的算子。
- aclnnAddbmm:需新建一个输出张量对象存储计算结果。
- aclnnInplaceAddbmm:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。
- 每个算子分为,必须先调用“aclnnAddbmmGetWorkspaceSize”或者”aclnnInplaceAddbmmGetWorkspaceSize“接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnAddbmm”或者”aclnnInplaceAddbmm“接口执行计算。
[object Object]
[object Object]
[object Object]
[object Object]
aclnnAddbmmGetWorkspaceSize
参数说明:
[object Object]- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:
- 不支持BFLOAT16数据类型;
- 当输入数据类型为FLOAT32时不支持cubeMathType=0;
- cubeMathType=1,当输入数据类型为FLOAT32时,会转换为FLOAT16计算,当输入为其他数据类型时不做处理;
- 不支持cubeMathType=3。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
- cubeMathType=1,当输入数据类型为FLOAT32时,会转换为HFLOAT32计算,当输入为其他数据类型时不做处理;
- cubeMathType=2,当输入数据类型为BFLOAT16时不支持该选项;
- cubeMathType=3,当输入数据类型为FLOAT32时,会转换为HFLOAT32计算,当输入为其他数据类型时不支持该选项。
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnAddbmm
aclnnInplaceAddbmmGetWorkspaceSize
参数说明:
[object Object]- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:
- 不支持BFLOAT16数据类型;
- 当输入数据类型为FLOAT32时不支持cubeMathType=0;
- cubeMathType=1,当输入数据类型为FLOAT32时,会转换为FLOAT16计算,当输入为其他数据类型时不做处理;
- 不支持cubeMathType=3。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
- cubeMathType=1,当输入数据类型为FLOAT32时,会转换为HFLOAT32计算,当输入为其他数据类型时不做处理;
- cubeMathType=2,当输入数据类型为BFLOAT16时不支持该选项;
- cubeMathType=3,当输入数据类型为FLOAT32时,会转换为HFLOAT32计算,当输入为其他数据类型时不支持该选项。
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnInplaceAddbmm
约束说明
- 确定性说明:
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:aclnnAddbmm&aclnnInplaceAddbmm默认确定性实现。
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:Cube单元不支持FLOAT32计算。当输入为FLOAT32,可通过设置cubeMathType=1(ALLOW_FP32_DOWN_PRECISION)来允许接口内部cast到FLOAT16进行计算。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:不支持batch1和batch2两输入其中一个输入为BFLOAT16, 另一个输入为FLOAT或FLOAT16的数据类型推导。
调用示例
[object Object]