文件最后提交记录最后更新时间
3 天前
6 天前
3 天前
README.md

Syr2算子

算子概述

syr2 (Symmetric Rank-2 Update) 实现对称秩-2更新操作。该算子将两个向量的外积组合加到对称矩阵的指定三角区域。

数学表达式:

A = alpha * x * y^T + alpha * y * x^T + A

包含以下接口:

接口名 功能简述
aclblasSsyr2 单精度对称秩-2更新

算子执行接口

aclblasSsyr2

产品支持情况

  • Ascend 950PR / Ascend 950DT:支持
  • Atlas A3 训练系列产品 / Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品 / Atlas A2 推理系列产品:支持

函数原型

aclblasStatus_t aclblasSsyr2(aclblasHandle_t handle, aclblasFillMode_t uplo, int n, const float *alpha, const float *x, int incx, const float *y, int incy, float *A, int lda)

参数说明

参数名 输入/输出 参数类型 说明
handle 输入 aclblasHandle_t ops-blas 库上下文句柄,携带 stream,Host 内存
uplo 输入 aclblasFillMode_t 指定矩阵 A 的存储格式。ACLBLAS_LOWER(122): 下三角,ACLBLAS_UPPER(121): 上三角,Host 内存
n 输入 int 向量 x 和 y 中的元素个数,矩阵 A 的行列数。n >= 0,Host 内存
alpha 输入 const float*(FP32) 标量 alpha 指针,向量乘积缩放因子,Host 内存
x 输入 const float*(FP32) 输入向量,对应公式中的 x。数据类型支持 FLOAT32,数据格式支持 ND,shape 为 [n],Device 内存
incx 输入 int x 相邻元素间的内存地址偏移量,incx != 0,Host 内存
y 输入 const float*(FP32) 输入向量,对应公式中的 y。数据类型支持 FLOAT32,数据格式支持 ND,shape 为 [n],Device 内存
incy 输入 int y 相邻元素间的内存地址偏移量,incy != 0,Host 内存
A 输入/输出 float*(FP32) 输入/输出矩阵,对应公式中的 A。数据类型支持 FLOAT32,数据格式支持 ND,shape 为 [n, n],Device 内存
lda 输入 int 矩阵 A 的每列元素的存储步长,lda >= max(1, n),Host 内存

约束说明

  • n >= 0,n==0 时直接返回成功
  • incx != 0,incy != 0
  • lda >= max(1, n)
  • 算子输入 shape 为 [n]、[n]、[n, n],输出 shape 为 [n, n]
  • 算子实际计算时,不支持 ND 高维度运算(不支持维度 >= 3 的运算)
  • Host 侧不做流同步,调用方需自行管理同步