当前位置: 首页 > news >正文

CANN/ops-blas Ssyr算子实现

Ssyr算子实现

【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas

概述

BLAS Ssyr算子实现。

Ssyr(Symmetric Rank-1 Update)算子实现了单精度向量的外积并将结果加到一个矩阵上,是BLAS基础线性代数库中的核心算子之一。

该算子实现对称秩1更新:A = alpha * x * x^T + A

支持的产品

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

目录结构介绍

├── ssyr │ ├── ssyr_kernel.cpp // 算子核函数实现 │ └── ssyr_host.cpp // 算子Host端实现 ├── test/ssyr │ ├── CMakeLists.txt // 编译工程文件 │ ├── README.md // 说明文档 │ └── ssyr_test.cpp // 算子调用样例

算子描述

  • 算子功能:
    ssyr算子实现了单精度向量的外积并将结果加到一个矩阵上。对应的数学表达式为:
A = alpha * x * x^T + A
  • 对应的接口:
aclblasSsyr(aclblasHandle handle, aclblasFillMode uplo, const int64_t n, const float alpha, uint8_t *x, const int64_t incx, uint8_t *A, const int64_t lda)
参数ssyr 参数说明
参数列表Param.Memoryin/out含义
handlehostin算子的句柄。
uplohostin指定矩阵A的存储格式。ASDBLAS_FILL_MODE_LOWER:下三角,ASDBLAS_FILL_MODE_UPPER:上三角。
nin向量x中的元素个数,矩阵A的行列数。取值范围[1, 16384]。
alphahostin标量alpha,向量乘积缩放因子。
xdevicein输入向量,对应公式中的'x'。数据类型支持FLOAT32,数据格式支持ND,shape为[n]。
incxinx相邻元素间的内存地址偏移量(当前约束为1)。
Adevicein/out输入/输出矩阵,对应公式中的'A'。数据类型支持FLOAT32,数据格式支持ND,shape为[n, n]。
ldain矩阵A的每列元素的存储步长(当前约束为n)。
  • 算子规格:

    算子类型(OpType)Ssyr
    算子输入nameshapedata typeformat
    x[n]floatND
    算子输出A[n, n]floatND
    核函数名ssyr
  • 约束说明:

    • 输入的元素个数n当前覆盖支持[1, 16384]。
    • 算子输入shape为[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 --ops=ssyr --run # --ops=<算子名> --run可选参数,执行测试样例

    执行结果如下,说明精度对比成功。

    Testing ssyr: Output: ... Golden: ... [Success] Case accuracy is verification passed. [PASS] ssyr_test

【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.zskr.cn/news/1325862.html

相关文章:

  • Knot部署指南:真机调试与App Store上架完整流程
  • 保姆级教程:用HackRF One复现汽车钥匙重放攻击(附完整命令与避坑点)
  • svelte-preprocess 性能优化最佳实践:提升构建速度的10个技巧
  • CANN AsNumpy排序函数API
  • Element React终极指南:快速构建企业级React应用UI界面
  • DPM-Solver噪声调度完全指南:离散时间vs连续时间
  • 静态时序分析:面向锁存器的传统时序分析
  • 碳化钨制造技术在下一代机器人领域的应用前景
  • 华为集合通信库(HCCL)超节点间算法支持
  • Configor 错误处理完全指南:从配置验证到异常恢复
  • ops-collections架构深度解析:如何实现NPU上的高性能哈希表
  • CANN混元视频配置说明
  • CANNBot torch-compile 快速入门
  • 企业如何利用Taotoken为内部工具提供统一AI能力网关
  • Keil C51评估版SRC指令限制解析与解决方案
  • 量子能量传输(QET)协议原理与实现技术详解
  • cann/asc-devkit SetGradOutput接口
  • CTF中的音频隐写术实战:从‘兔耳’和‘调频收音机’两道Misc题,学会用Python脚本提取隐藏信息
  • 穿透算法黑箱:2026论文降AI率工具深度测评,早标网语义保真度99%
  • 昇腾NPU算子开发进阶:深入理解ops-tensor中的解决方案注册机制 [特殊字符]
  • 从CVE-2017-11882到CVE-2018-0802:一个Office漏洞的“补丁绕过”实战复现与调试分析
  • 别再被假密码骗了!手把手教你用010 Editor识别并破解ZIP/RAR伪加密压缩包
  • USB/IP Windows:打破物理限制的USB设备网络共享终极方案
  • CANN/asc-devkit MrgSort合并排序函数
  • VS Code 轻量自动化实战:Trae 集成 3 步配置与 5 个高频任务模板
  • Configor 自动重载功能深度解析:实现配置热更新的终极指南
  • CANN Bench UnsortedSegmentSum 算子评测
  • CANN/cann-bench稀疏注意力算子
  • cann/asc-devkit: EXTERN_IMPL_BUFPOOL宏详解
  • CANN/asc-devkit TSCM队列入队函数