Cgemv
功能描述
计算公式
- 示例:
输入“x”为:
[ 2+i,2+2i ]
输入“y”为:
[ 1+i,1+2i ]
输入“m”为:2,输入“n”为: 2,输入“trans”为'N':2,输入“alpha”为:1+i,“beta”为:2+2i,
输入“lda”为: 2,输入“incx”为:1,输入“incy”为:1,
调用“asdBlasMakeCgemvPlan”生成plan,
调用“asdBlasCgemv”接口执行后,
输出“y”为:
[ -10 + 12i,-19 + 15i]
接口原型
- AspbStatus asdBlasMakeCgemvPlan(asdBlasHandle handle, asdBlasOperation_t trans, const int64_t m, const int64_t n,aclTensor *y, const int64_t incy)
- AspbStatus asdBlasCgemv(asdBlasHandle handle, asdBlasOperation_t trans, const int64_t m, const int64_t n,const std::complex<float> *alpha, aclTensor *A, const int64_t lda, aclTensor *x,const int64_t incx, const std::complex<float> *beta, aclTensor *y, const int64_t incy)
参数列表
- asdBlasMakeCgemvPlan
参数名称
Input/Output
类型
描述
handle
Input
asdBlasHandle
cgemv算子的句柄。
trans
Input
asdBlasOperation_t
指定矩阵A是否需要转置。
ASDBLAS_OP_N // 不转置 ASDBLAS_OP_T // 转置 ASDBLAS_OP_C // 共轭转置
m
Input
const int64_t
矩阵A的行数,向量y的元素个数。
n
Input
const int64_t
矩阵A的列数,向量x的元素个数。
y
Input
aclTensor *
向量y。
incy
Input
const int64_t
向量y的步长。
- asdBlasCgemv
参数名称
Input/Output
类型
描述
handle
Input
asdBlasHandle
cgemv算子的句柄。
trans
Input
asdBlasOperation_t
指定矩阵A是否需要转置。
ASDBLAS_OP_N // 不转置 ASDBLAS_OP_T // 转置 ASDBLAS_OP_C // 共轭转置
m
Input
const int64_t
矩阵A的行数,向量y的元素个数。
n
Input
const int64_t
矩阵A的列数,向量x的元素个数。
alpha
Input
const std::complex<float> *
公式中的alpha,复数标量,用于乘以矩阵和向量乘法的结果。
A
Input
aclTensor *
公式中的矩阵A,列主序,Device侧的Tensor,数据类型仅支持COMPLEX64,数据格式支持ND,shape为[m,n]。
lda
Input
const int64_t
A左右相邻元素间的内存地址偏移量(当前约束为m)。
x
Input
aclTensor *
公式中的向量x,Device侧的Tensor,数据类型仅支持COMPLEX64,数据格式支持ND,shape为[n]。
incx
Input
const std::complex<float>
向量x的步长(当前约束为1)。
beta
Input
const std::complex<float> *
公式中的beta,复数标量,用于乘以向量y 。
y
Input/Output
aclTensor *
公式中的向量y,Device侧的Tensor,数据类型仅支持COMPLEX64,数据格式支持ND,shape为[m]。
incy
Input
const int64_t
向量y的步长(当前约束为1)。
规格约束
- asdBlasMakeCgemvPlan:无。
- asdBlasCgemv
- 输入的元素个数m,n理论支持[1, 9.22e+18],当前覆盖支持[1, 8193];
- 算子输入矩阵A为列主序,输入shape为[m, n]、[m]、[n],输出shape为[m];
- 算子实际计算时,不支持ND高维度运算(不支持维度≥3的运算)。