昇腾社区首页
中文
注册

aclblasGemmEx

产品支持情况

产品

是否支持

Atlas A2 训练系列产品/Atlas 800I A2 推理产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

Atlas 200/300/500 推理产品

功能说明

执行矩阵-矩阵的乘法,C = αAB + βC,输入数据、输出数据的数据类型通过入参设置。

A、B、C的数据类型支持仅支持以下组合, α和β的数据类型与C一致。

A的数据类型

B的数据类型

C的数据类型

aclFloat16

aclFloat16

aclFloat16

aclFloat16

aclFloat16

float(float32)

int8_t

int8_t

float(float32)

int8_t

int8_t

int32_t

本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,aclrtSynchronizeStream)确保任务已执行完成,否则可能会导致训练或推理等业务异常、Device断链掉卡等未知情况。

函数原型

aclError aclblasGemmEx(aclTransType transA,
aclTransType transB,
aclTransType transC,
int m,
int n,
int k,
const void *alpha,
const void *matrixA,
int lda,
aclDataType dataTypeA,
const void *matrixB,
int ldb,
aclDataType dataTypeB,
const void *beta,
void *matrixC,
int ldc,
aclDataType dataTypeC,
aclComputeType type,
aclrtStream stream)

参数说明

参数名

输入/输出

说明

transA

输入

A矩阵是否转置的标记。

transB

输入

B矩阵是否转置的标记。

transC

输入

C矩阵的标记,当前仅支持ACL_TRANS_N。

m

输入

矩阵A的行数与矩阵C的行数。

n

输入

矩阵B的列数与矩阵C的列数。

k

输入

矩阵A的列数与矩阵B的行数。

alpha

输入

用于执行乘操作的标量α的指针。

matrixA

输入

矩阵A的指针。

lda

输入

A矩阵的主维,此时选择转置,按行优先,则lda为A的列数。预留参数,当前只能设置为-1。

dataTypeA

输入

矩阵A的数据类型。

matrixB

输入

矩阵B的指针。

ldb

输入

B矩阵的主维,此时选择转置,按行优先,则ldb为B的列数。预留参数,当前只能设置为-1。

dataTypeB

输入

矩阵B的数据类型。

beta

输入

用于执行乘操作的标量β的指针。

matrixC

输入&输出

矩阵C的指针。

ldc

输入

C矩阵的主维,预留参数,当前只能设置为-1。

dataTypeC

输入

矩阵C的数据类型。

type

输入

计算精度,默认高精度。

stream

输入

执行算子所在的Stream。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError

参考资源

接口调用流程,参见单算子调用流程