news 2026/5/9 13:18:49

CANN/ops-blas批量复数矩阵向量乘法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ops-blas批量复数矩阵向量乘法

CgemvBatched算子实现

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

概述

BLAS CgemvBatched算子实现。

CgemvBatched(批量复数矩阵-向量乘法)算子实现了批量复数矩阵与向量的乘法运算,是BLAS基础线性代数库中的核心算子之一。

该算子针对批量计算场景进行了优化,支持普通、转置和共轭转置三种矩阵操作模式,高效完成批量矩阵-向量乘法。

支持的产品

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

目录结构介绍

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

算子描述

  • 算子功能:
    CgemvBatched算子实现了批量复数矩阵与向量的乘法。对应的数学表达式为:
y[i] = A[i] * x[i] (trans = N) y[i] = A[i]^T * x[i] (trans = T) y[i] = A[i]^H * x[i] (trans = C)

其中A[i]是复数矩阵,x[i]和y[i]是复数向量,i是批次索引

复数乘法公式:(a + bi) * (c + di) = (ac - bd) + (ad + bc)i

对应的接口为:

int aclblasCgemvBatched(const void *A, const void *x, void *y, const int64_t batchCount, const int64_t m, const int64_t n, const int32_t trans, const int32_t dtype, void *stream);
参数cgemv_batched 参数说明
参数列表Param.Memoryin/out含义
batchCountin批次数。
min矩阵的行数。
nin矩阵的列数。
Adevicein批量复数矩阵,batchCount个m×n矩阵。
xdevicein批量复数向量,batchCount个向量。
transin矩阵操作类型:0=N(普通),1=T(转置),2=C(共轭转置)。
dtypein数据类型:0=half,1=float。
ydeviceout批量复数向量,batchCount个向量。
  • 算子规格:

    算子类型(OpType)CgemvBatched
    算子输入nameshapedata typeformat
    A, xbatchCount × m × ncomplex<float>ND
    算子输出ybatchCount × mcomplex<float>ND
    核函数名cgemv_batched_kernel
  • 算子实现:

    将输入数据从A和x的GM地址分块搬运到UB,使用GatherMask分离实部和虚部,进行复数矩阵-向量乘法计算,最后归约并搬出到y所在的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=cgemv_batched --run # --ops=<算子名> --run可选参数,执行测试样例

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

    [Success] Case accuracy is verification passed.

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 13:16:30

通过用量看板观察不同模型API调用的成本与延迟表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过用量看板观察不同模型API调用的成本与延迟表现 对于使用多个大模型API的开发者而言&#xff0c;清晰、可量化的调用数据是进行…

作者头像 李华
网站建设 2026/5/9 13:12:30

Figma中文界面终极指南:3分钟让英文设计工具秒变中文

Figma中文界面终极指南&#xff1a;3分钟让英文设计工具秒变中文 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而苦恼吗&#xff1f;FigmaCN是一款专为中文用户…

作者头像 李华
网站建设 2026/5/9 13:12:29

ZooKeeper 未授权访问漏洞:你做的 ACL 加固可能只是“假动作”

在日常安全加固中&#xff0c;经常会收到基础架构或安全部门的反馈&#xff1a;ZooKeeper 存在未授权访问漏洞。很多同学拿到需求后的第一反应是“加个 ACL 就好了”&#xff0c;于是动手操作一轮&#xff1a;添加超级用户、给某个节点设置 IP 白名单、然后觉得超级用户碍事把它…

作者头像 李华
网站建设 2026/5/9 13:10:33

2026年隔热条十大品牌:谁是真正的研发王者?

随着建筑节能标准的不断提高&#xff0c;隔热条在门窗幕墙系统中的重要性日益凸显。作为门窗节能系统的核心部件&#xff0c;隔热条不仅直接影响建筑的节能效果&#xff0c;还关系到居住安全和企业的可持续发展。在这个竞争激烈的市场中&#xff0c;哪些品牌能够脱颖而出&#…

作者头像 李华
网站建设 2026/5/9 13:03:47

Claude Code 用户如何快速切换至 Taotoken 稳定服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Claude Code 用户如何快速切换至 Taotoken 稳定服务 对于使用 Claude Code 进行开发的工程师而言&#xff0c;服务稳定性是保障开发…

作者头像 李华