CANN/ops-blas Ssyr2算子

CANN/ops-blas Ssyr2算子 Ssyr2算子实现【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas概述BLAS Ssyr2算子实现。Ssyr2(Symmetric Rank-2 Update)算子实现了单精度向量的外积并将结果加到一个矩阵上是BLAS基础线性代数库中的核心算子之一。该算子实现对称秩2更新A alpha * x * y^T alpha * y * x^T A支持的产品Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品目录结构介绍blas/syr2/ssyr2/ ├── README.md // 说明文档 ├── arch22/ │ ├── ssyr2_kernel.cpp // 算子核函数实现 │ └── ssyr2_host.cpp // 算子Host端实现 └── arch35/ ├── ssyr2_kernel.cpp // 算子核函数实现 ├── ssyr2_host.cpp // 算子Host端实现 └── ssyr2_tiling_data.h // Tiling 数据结构测试代码位于test/syr2/ssyr2/test/syr2/ssyr2/ ├── CMakeLists.txt // 编译工程文件 └── ssyr2_test.cpp // 算子调用样例算子描述算子功能ssyr2算子实现了单精度向量的外积并将结果加到一个矩阵上。对应的数学表达式为A alpha * x * y^T alpha * y * x^T A对应的接口aclblasSsyr2(aclblasHandle handle, aclblasFillMode uplo, const int64_t n, const float alpha, uint8_t *x, const int64_t incx, uint8_t *y, const int64_t incy, uint8_t *A, const int64_t lda)参数ssyr2 参数说明参数列表Param.Memoryin/out含义handlehostin算子的句柄。uplohostin指定矩阵A的存储格式。ASDBLAS_FILL_MODE_LOWER:下三角ASDBLAS_FILL_MODE_UPPER:上三角。nin向量x和y中的元素个数矩阵A的行列数。取值范围[1, 8192]。alphahostin标量alpha向量乘积缩放因子。xdevicein输入向量对应公式中的x。数据类型支持FLOAT32数据格式支持NDshape为[n]。incxinx相邻元素间的内存地址偏移量当前约束为1。ydevicein输入向量对应公式中的y。数据类型支持FLOAT32数据格式支持NDshape为[n]。incyiny相邻元素间的内存地址偏移量当前约束为1。Adevicein/out输入/输出矩阵对应公式中的A。数据类型支持FLOAT32数据格式支持NDshape为[n, n]。ldain矩阵A的每列元素的存储步长当前约束为n。算子规格算子类型(OpType)Ssyr2算子输入nameshapedata typeformatx[n]floatNDy[n]floatND算子输出A[n, n]floatND核函数名ssyr2约束说明输入的元素个数n当前覆盖支持[1, 8192]。算子输入shape为[n]、[n]、[n, n]输出shape为[n, n]。算子实际计算时不支持ND高维度运算不支持维度≥3的运算。编译运行在本样例根目录下执行如下步骤编译并执行算子。配置环境变量请根据当前环境上CANN开发套件包的安装方式选择对应配置环境变量的命令。默认路径root用户安装CANN软件包source /usr/local/Ascend/cann/set_env.sh默认路径非root用户安装CANN软件包source $HOME/Ascend/cann/set_env.sh指定路径install_path安装CANN软件包source ${install_path}/cann/set_env.sh样例执行bash build.sh --opsssyr2 --run # --ops算子名 --run可选参数执行测试样例执行结果如下说明精度对比成功。Testing ssyr2: Output: ... Golden: ... [Success] Case accuracy is verification passed. [PASS] ssyr2_test【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考