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

CANN/ops-blas spmv测试

spmv算子实现

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

概述

BLAS spmv算子实现。

Spmv(Symmetric Packed Matrix-Vector Multiplication)算子实现了对称压缩矩阵与向量的乘法运算,是BLAS基础线性代数库中的核心算子之一。

该算子针对对称矩阵的存储特性进行了优化,采用压缩存储格式以节省内存空间,并高效完成矩阵与向量的乘加运算。

支持的产品

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

目录结构介绍

├── spmv │ ├── CMakeLists.txt // 编译工程文件 │ ├── README.md // 说明文档 │ └── spmv_test.cpp // 算子调用样例

算子描述

  • 算子功能:
    spmv算子实现了将对称压缩矩阵乘以向量。对应的数学表达式为:
z = alpha * A * x + beta * y

A为对称压缩矩阵,x和y是向量,alpha和beta是标量

对称矩阵A的下三角部分元素按行连续打包储存,元素A(i,j)储存在位置AP[j + i * (i + 1) / 2]中,且i >= j,对应的对称部分通过已有元素推断得出。压缩对称矩阵格式仅需要n * (n + 1) / 2个元素储存。

对应的接口为:

int aclblasSpmv(const float *aPacked, const float *x, const float *y, float *z, const float alpha, const float beta, const int64_t n, const int64_t incx, const int64_t incy, void *stream);
参数spmv 参数说明
参数列表Param.Memoryin/out含义
nin对称压缩矩阵 A 的行数和列数。
alphahost/devicein用于乘法的 <type> 标量。
aPackeddevicein对称压缩矩阵 <type> 数组,维度为 n x n。
xdevicein<type> 向量,包含 n 个元素。
incxinx 中连续元素之间的步长。
betahost/devicein用于乘法的 <type> 标量。如果 beta == 0,则 y 不必是有效输入。
ydevicein<type> 向量,包含 n 个元素。
incyiny 中连续元素之间的步长。
zdeviceout<type> 向量,包含 n 个元素。
  • 算子规格:

    算子类型(OpType)Spmv
    算子输入nameshapedata typeformat
    AN * (N + 1) /2floatND
    xNfloatND
    yNfloatND
    alpha1floatND
    beta1floatND
    算子输出zNfloatND
    核函数名spmv_kernel
  • 算子实现:

    将输入数据从A,x,y的GM地址分块搬运到UB,进行计算后再搬出到z所在的GM地址。

  • 调用实现
    使用内核调用符<<<>>>调用核函数。

编译运行

在本样例根目录下执行如下步骤,编译并执行算子。

  • 配置环境变量
    请根据当前环境上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=spmv --run # --ops=<算子名> --run可选参数,执行测试样例

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

    [Success] Case accuracy is verification passed.

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

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

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

相关文章:

  • Qwen2-0.5B代码生成能力详解:从基础编程到复杂算法实现
  • Qwen3.6-35B-A3B-Claude-4.7-Opus-Reasoning-Distilled在GSM8K和MMLU-Pro基准测试中的表现分析
  • 如何永久保存微信聊天记录并生成年度报告:WeChatMsg完整指南
  • JADE算法:基于DTW的鲁棒瞬时频率估计技术解析
  • 2026年加强型地坪铠装缝/金属铠装缝/铠装缝长期合作厂家推荐 - 行业平台推荐
  • MindIE/FramePack模型权重管理:HuggingFace模型下载与配置完整指南
  • 2026年性价比高的铠甲缝变形缝/铠甲缝横向对比厂家推荐 - 品牌宣传支持者
  • 2026年热门的江西动力锂离子电池负极材料/江西锂离子电池负极材料/江西储能锂离子电池负极材料/快充锂离子电池负极材料推荐厂家精选 - 品牌宣传支持者
  • Scenema Audio 零样本语音克隆教程:10 秒参考音频实现完美声线转移
  • 从LEF到NDM:给后端新手的Innovus和ICC2数据准备入门指南(7nm实战)
  • Qt多线程实战:用moveToThread给界面‘减负’,实现一个后台日志分析工具(Qt5/C++)
  • 三菱PLC软元件 定时器 计数器 状态继电器 编码器
  • 革命性零样本分类模型deberta-v3-base-zeroshot-v1.1-all-33:33个数据集训练的终极文本分类解决方案
  • MindSpeed-LLM数据预处理教程:高效准备Qwen3-0.6B训练数据集的完整指南
  • Irodori-TTS-500M-v3进阶应用:创建个性化日语语音助手的完整流程
  • FreeRTOS Tickless模式实战:在STM32F103上实测功耗能降多少?(附代码)
  • 2026年靠谱的成都隧道灯/成都办公灯定制加工厂家推荐 - 品牌宣传支持者
  • 如何用Illustrious XL v0.1生成专业级插画?完整入门教程
  • 2026年4月评价好的真空螺旋干燥机厂家哪家好,闪蒸干燥机/干燥设备/真空螺旋干燥机,真空螺旋干燥机厂家选哪家 - 品牌推荐师
  • DeBERTa-v3-base-mnli-fever-anli模型训练秘籍:76万NLI数据如何打造顶级分类器
  • 别再只做教程了!so-vits-svc 4.1 模型训练后,用 Studio One 进行专业级人声混音与后期全流程
  • talkie-1930-13b-it:革命性复古语言模型的完整指南
  • 2026年4月国内热门的海外营销企业推荐,市面上海外营销公司哪个好,海外营销技术支持,保障营销顺畅 - 品牌推荐师
  • 深入UEFI内存管理:图解HOB List如何为DXE阶段‘铺好路’
  • Linux服务器网络排障利器:networkctl status命令的10个实战用法与解读
  • REAP剪枝原理详解:路由门值与专家激活范数的巧妙结合
  • MindSpeed-LLM框架深度解析:华为昇腾AI生态的大语言模型加速方案
  • 别死记硬背!用一个“猜数字”游戏,掌握库函数的学习方法
  • 鼎捷Tiptop ERP T100/GP 5.3版本Webservice接口开发:从零到部署的完整避坑指南(含SoapUI测试)
  • Sora 2动效渲染瓶颈全拆解:从GPU管线调度到CSS Layering的12ms响应达标实操指南