news 2026/5/9 14:27:07

CANN/pyasc adds算子矢量加标量API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/pyasc adds算子矢量加标量API

asc.language.basic.adds

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

asc.language.basic.adds(dst: LocalTensor, src: LocalTensor, scalar: int | float, count: int, is_set_mask: bool = True) → None

asc.language.basic.adds(dst: LocalTensor, src: LocalTensor, scalar: int | float, mask: int, repeat_times: int, repeat_params: UnaryRepeatParams, is_set_mask: bool = True) → None

asc.language.basic.adds(dst: LocalTensor, src: LocalTensor, scalar: int | float, mask: List[int], repeat_times: int, repeat_params: UnaryRepeatParams, is_set_mask: bool = True) → None

矢量内每个元素与标量求和。

对应的Ascend C函数原型

template <typename T, bool isSetMask = true> __aicore__ inline void Adds(const LocalTensor<T>& dstLocal, const LocalTensor<T>& srcLocal, const T& scalarValue, const int32_t& calCount)
template <typename T, bool isSetMask = true> __aicore__ inline void Adds(const LocalTensor<T>& dstLocal, const LocalTensor<T>& srcLocal, const T& scalarValue, uint64_t mask[], const uint8_t repeatTimes, const UnaryRepeatParams& repeatParams)
template <typename T, bool isSetMask = true> __aicore__ inline void Adds(const LocalTensor<T>& dstLocal, const LocalTensor<T>& srcLocal, const T& scalarValue, uint64_t mask, const uint8_t repeatTimes, const UnaryRepeatParams& repeatParams)

参数说明

  • is_set_mask:是否在接口内部设置mask模式和mask值。
  • dst:目的操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
  • src:源操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
  • scalar:源操作数,数据类型需要与目的操作数中的元素类型保持一致。
  • count:参与计算的元素个数。
  • mask:用于控制每次迭代内参与计算的元素。
  • repeat_times:重复迭代次数。
  • params:元素操作控制结构信息。

约束说明

  • 操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。
  • 操作数地址重叠约束请参考 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址重叠约束”。

调用示例

  • tensor高维切分计算样例-mask连续模式
    mask = 128 scalar = 2 # repeat_times = 4,一次迭代计算128个数,共计算512个数 # dst_blk_stride, src_blk_stride = 1,单次迭代内数据连续读取和写入 # dst_rep_stride, src_rep_stride = 8,相邻迭代间数据连续读取和写入 params = asc.UnaryRepeatParams(1, 1, 8, 8) asc.adds(dst, src, scalar, mask=mask, repeat_times=4, repeat_params=params)
  • tensor高维切分计算样例-mask逐bit模式
    mask = [uint64_max, uint64_max] scalar = 2 # repeat_times = 4,一次迭代计算128个数,共计算512个数 # dst_blk_stride, src_blk_stride = 1,单次迭代内数据连续读取和写入 # dst_rep_stride, src_rep_stride = 8,相邻迭代间数据连续读取和写入 params = asc.UnaryRepeatParams(1, 1, 8, 8) asc.adds(dst, src, scalar, mask=mask, repeat_times=4, repeat_params=params)
  • tensor前n个数据计算样例
    asc.adds(dst, src, scalar, count=512)

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

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

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

CANN/ops-math ClipByValueV2算子

ClipByValueV2 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系…

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

智能汽车避障路径规划与MPC跟踪控制策略优化【附仿真】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;私信&#xff0c;或者点击《获取方式》 &#xff08;1&#xff09;基于采样的优化RRT与贝塞尔曲线…

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

生成式AI在软件工程全链路中的应用与实践指南

1. 项目概述&#xff1a;当AI开始“写”代码最近两年&#xff0c;如果你还在手动敲每一行重复的业务逻辑代码&#xff0c;或者为找一个隐藏的Bug熬到深夜&#xff0c;那你可能真的需要更新一下自己的工具箱了。生成式AI&#xff0c;这个曾经听起来像是科幻电影里的概念&#xf…

作者头像 李华
网站建设 2026/5/9 14:21:42

AI在光网络与5G中的工程实践:从黑盒模型到白盒融合的稳健路径

1. 从“黑盒”到“白盒”&#xff1a;AI在通信网络中的价值重塑与落地挑战最近几年&#xff0c;但凡和通信网络沾边的技术论坛或学术会议&#xff0c;AI和机器学习&#xff08;ML&#xff09;几乎成了“标配”话题。从OFC到ECOC&#xff0c;相关专题报告层出不穷&#xff0c;仿…

作者头像 李华
网站建设 2026/5/9 14:21:40

别把 FP8 当成一种精度:DeepGEMM 最近很火,但真正决定你能不能读懂它的,是 E4M3、E5M2、MXFP8 和缩放策略

别把 FP8 当成一种精度:DeepGEMM 最近很火,但真正决定你能不能读懂它的,是 E4M3、E5M2、MXFP8 和缩放策略 很多人最近看到 DeepSeek 开源的 DeepGEMM,第一反应是“FP8 时代来了,8bit 训练就是把 bf16 再压一档”。如果你真按这个理解去读 README、看论文、改训练脚本,后…

作者头像 李华