news 2026/5/10 8:49:34

CANN/ops-blas复数矩阵点乘测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ops-blas复数矩阵点乘测试

ComplexMatDot算子实现

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

概述

BLAS ComplexMatDot算子实现。

ComplexMatDot(复数矩阵点乘)算子实现了两个复数矩阵的逐元素乘法运算,是BLAS基础线性代数库中的扩展算子之一。

该算子针对复数运算特性进行了优化,使用GatherMask操作高效完成复数矩阵的逐元素乘法。

支持的产品

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

目录结构介绍

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

算子描述

  • 算子功能:
    ComplexMatDot算子实现了两个复数矩阵的逐元素乘法。对应的数学表达式为:
result[i, j] = matx[i, j] * maty[i, j]

matx和maty是复数矩阵,result是输出复数矩阵

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

对应的接口为:

int aclblasComplexMatDot(const float *matx, const float *maty, float *result, const int64_t m, const int64_t n, void *stream);
参数complex_mat_dot 参数说明
参数列表Param.Memoryin/out含义
min矩阵的行数。
nin矩阵的列数。
matxdevicein复数矩阵,维度为 m × n,存储为 2*m*n 个float。
matydevicein复数矩阵,维度为 m × n,存储为 2*m*n 个float。
resultdeviceout复数矩阵,维度为 m × n,存储为 2*m*n 个float。
  • 算子规格:

    算子类型(OpType)ComplexMatDot
    算子输入nameshapedata typeformat
    matxm × ncomplexND
    matym × ncomplexND
    算子输出resultm × ncomplexND
    核函数名complex_mat_dot_kernel
  • 算子实现:

    将输入数据从matx和maty的GM地址分块搬运到UB,使用GatherMask分离实部和虚部,进行复数乘法计算后再搬出到result所在的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=complex_mat_dot --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/10 8:46:45

DeepPaperNote:基于AI的论文深度阅读与Obsidian知识库自动化整合工具

1. 项目概述&#xff1a;从“读论文”到“建知识”的自动化桥梁 作为一名长期在科研一线和知识管理领域摸爬滚打的从业者&#xff0c;我深知一个痛点&#xff1a;读一篇好论文&#xff0c;尤其是那些奠基性的经典文献或方法复杂的顶会文章&#xff0c;真正的难点往往不在于理解…

作者头像 李华
网站建设 2026/5/10 8:43:49

WELearn网课助手终极指南:告别熬夜刷课,5分钟实现学习自由

WELearn网课助手终极指南&#xff1a;告别熬夜刷课&#xff0c;5分钟实现学习自由 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案&#xff1b;支持班级测试&#xff1b;自动答题&#xff1b;刷时长&#xff1b;基于生成式AI(ChatGPT)的答案生成 项目地址: htt…

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

2026-05-10:找到带限制序列的最大值。用go语言,给定一个整数 n、一个二维整数数组 restrictions、以及一个长度为 n-1 的数组 diff。你需要生成一个长度为 n 的非负整数序

2026-05-10&#xff1a;找到带限制序列的最大值。用go语言&#xff0c;给定一个整数 n、一个二维整数数组 restrictions、以及一个长度为 n-1 的数组 diff。你需要生成一个长度为 n 的非负整数序列 a[0…n-1]&#xff0c;使得&#xff1a;a[0] 固定为 0。对于每个 i&#xff08…

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

5分钟掌握BetterGI:彻底改变你的《原神》游戏体验

5分钟掌握BetterGI&#xff1a;彻底改变你的《原神》游戏体验 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹…

作者头像 李华
网站建设 2026/5/10 8:30:45

Graph of Thoughts (GoT) 框架:超越思维链与思维树的复杂推理引擎

1. 从链式到图式&#xff1a;为什么我们需要超越CoT与ToT如果你已经尝试过用大语言模型&#xff08;LLM&#xff09;解决一些稍微复杂的问题&#xff0c;比如逻辑推理、代码生成或者数学计算&#xff0c;那你大概率接触过“思维链”&#xff08;Chain-of-Thought, CoT&#xff…

作者头像 李华
网站建设 2026/5/10 8:28:47

猫抓cat-catch 2.6.9:浏览器资源嗅探的7大技术革新与实战应用指南

猫抓cat-catch 2.6.9&#xff1a;浏览器资源嗅探的7大技术革新与实战应用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾为下载网页中…

作者头像 李华