news 2026/5/9 13:24:15

CANN/ops-blas Cswap算子测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ops-blas Cswap算子测试

Cswap算子实现

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

概述

BLAS Cswap算子实现。

Cswap(Complex Swap)算子实现了两个复数向量的交换运算,是BLAS基础线性代数库中的核心算子之一。

复数向量在内存中以交错float数组形式存储:[real0, imag0, real1, imag1, ...]

支持的产品

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

目录结构介绍

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

算子描述

  • 算子功能:
    cswap算子实现了两个复数向量x和y的交换。对应的数学表达式为:
x <-> y
  • 对应的接口:
int aclblasCswap(aclblasHandle handle, float *x, float *y, const int64_t n, const int64_t incx, const int64_t incy);
参数cswap 参数说明
参数列表Param.Memoryin/out含义
handlehostinACL流handle,用于传入stream。
xdevicein/out复数向量(存储为float数组,2*n个元素)。
ydevicein/out复数向量(存储为float数组,2*n个元素)。
nin向量中的复数元素个数。
incx/incyinx/y中连续元素之间的步长。
  • 算子规格:

    算子类型(OpType)Cswap
    算子输入nameshapedata typeformat
    x/y8 * 2048complexND
    算子输出x8 * 2048complexND
    y8 * 2048complexND
    核函数名cswap_kernel
  • 算子实现:

    复数向量被视为2*n个float元素,直接复用swap逻辑,使用ping-pong双缓冲策略完成交换。

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

编译运行

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

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

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

    [Success] Case accuracy is verification passed. [PASS] cswap_test

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

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

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

CANNSHMEM SIMT RMA标量传输示例

样例介绍 【免费下载链接】shmem CANN SHMEM 是面向昇腾平台的多机多卡内存通信库&#xff0c;基于OpenSHMEM 标准协议&#xff0c;实现跨设备的高效内存访问与数据同步。 项目地址: https://gitcode.com/cann/shmem 本样例旨在展示 SIMD 与 SIMT 混合编译模式下&#x…

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

CANNBot技能:模型推理预取优化

【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体&#xff0c;本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills name: model-infer-prefetch description: 基于 PyTorch 框架的昇腾 N…

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

组态屏工程备份 / 恢复 / 加密 / 密码忘记

在工业自动化现场&#xff0c;组态屏作为人机交互的核心设备&#xff0c;承载着设备监控、参数设置、报警记录等关键功能。而组态工程文件&#xff0c;则是这块屏幕的“灵魂”——一旦工程丢失或损坏&#xff0c;重新编写不仅耗时数日&#xff0c;甚至可能因工艺参数遗忘而导致…

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

C 语言11 函数传参与递归

函数的参数传递1.值传递&#xff0c;实参数通过赋值运算符把参数内容赋值给形参的形式&#xff0c;形参是实参的一个副本。数据内容是相同的。实参的内存空间和形参的是独立的。值传递只能读取实参的值&#xff0c;不能进行修改。2.地址传递。实参传递变量的内存地址值。即可以…

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

信号处理加速库CgemmOperation C++ Demo

信号处理加速库CgemmOperation C Demo 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库&#xff0c;基于华为Ascend AI处理器&#xff0c;专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 介绍 该目录下为信号处…

作者头像 李华