news 2026/5/9 16:42:29

CANN ops-blas Cscal算子实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN ops-blas Cscal算子实现

Cscal算子实现

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

概述

BLAS Cscal算子实现。

Cscal(Complex Scale)算子实现了复数向量缩放运算,是BLAS基础线性代数库中的核心算子之一。

该算子实现复数向量乘以复数标量:(a+bi)*(c+di) = (ac-bd) + (ad+bc)i

支持的产品

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

目录结构介绍

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

算子描述

  • 算子功能:
    cscal算子实现了复数向量x乘以复数标量alpha。对应的数学表达式为:
x = alpha * x

复数乘法公式:(real, imag) * (alpha_r, alpha_i) = (real*alpha_r - imag*alpha_i, real*alpha_i + imag*alpha_r)

  • 对应的接口:
int aclblasCscal(aclblasHandle handle, std::complex<float> *x, const std::complex<float> alpha, const int64_t n, const int64_t incx);
参数cscal 参数说明
参数列表Param.Memoryin/out含义
handlehostinACL流handle,用于传入stream。
xdevicein/out复数向量,包含n个complex 元素。
alphahostin用于乘法的复数标量。
nin向量x中的复数元素个数。
incxinx中连续元素之间的步长。
  • 算子规格:

    算子类型(OpType)Cscal
    算子输入nameshapedata typeformat
    x8 * 2048complexND
    算子输出x8 * 2048complexND
    核函数名cscal
  • 算子实现:

    将复数向量从GM搬运到UB,使用vreducev2进行虚实分离,分别计算实部实部、实部虚部、虚部实部、虚部虚部,再使用add_v合并结果,最后通过vgather进行虚实合并并搬运回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=cscal --run # --ops=<算子名> --run可选参数,执行测试样例

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

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

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

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

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

CANN/runtime IPC内存共享示例

10_ipc_memory_withpid 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 描述 本样例展示了同一个Device、两个进程间的内存共享&#xff0c;在共享内存时启用进程白名单校验。 产品支持情况 本样例支…

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

CANN/ops-rand AI Core算子开发指南

AI Core算子开发指南 【免费下载链接】ops-rand ops-rand是CANN &#xff08;Compute Architecture for Neural Networks&#xff09;算子库中提供的随机数生成库。 项目地址: https://gitcode.com/cann/ops-rand 说明&#xff1a; 算子开发过程中涉及的基本概念如Tiling…

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

CANN驱动AI Core查询API

dcmi_get_device_aicore_info 【免费下载链接】driver 本项目是CANN提供的驱动模块&#xff0c;实现基础驱动和资源管理及调度等功能&#xff0c;使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_device_aicore_info(int card_id, in…

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

CHB-MIT数据集在Kaggle竞赛与学术研究中的价值:给AI+医疗新手的入门指南

CHB-MIT数据集在Kaggle竞赛与学术研究中的价值&#xff1a;给AI医疗新手的入门指南 在医疗AI领域&#xff0c;数据是推动研究进展的核心燃料。对于刚踏入这个交叉领域的研究者而言&#xff0c;如何选择一个既具备学术价值又适合技术实践的公开数据集&#xff0c;往往成为项目启…

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

CANN/hccl HCCL集合通信算法简介

算法简介 【免费下载链接】hccl 集合通信库&#xff08;Huawei Collective Communication Library&#xff0c;简称HCCL&#xff09;是基于昇腾AI处理器的高性能集合通信库&#xff0c;为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hccl …

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

五分钟接入OpenAI兼容API为网站添加智能对话

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 五分钟接入OpenAI兼容API为网站添加智能对话 基础教程类&#xff0c;面向需要为网站集成AI功能的开发者&#xff0c;介绍如何通过c…

作者头像 李华