当前位置: 首页 > news >正文

CANN/ops-nn: 原位加法RMS归一化算子

InplaceAddRmsNorm

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品×
Atlas 推理系列产品
Atlas 训练系列产品×
Kirin X90 处理器系列产品
Kirin 9030 处理器系列产品

功能说明

  • 算子功能:RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。AddRmsNorm算子将RmsNorm前的Add算子融合起来,减少搬入搬出操作。InplaceAddRmsNorm是一种结合了原位加法和RMS归一化的操作。

  • 计算公式:

    $$ x_i=x1_{i}+x2_{i} $$

    $$ \operatorname{RmsNorm}(x_i)= g_i * (x_i * \operatorname{rstd}(\mathbf{x})), \quad \text { where } \operatorname{rstd}(\mathbf{x})=\frac{1}{\sqrt{\frac{1}{n} \sum_{i=1}^n x_i^2+eps}} $$

参数说明

参数名输入/输出/属性描述数据类型数据格式
x1输入用于Add计算的第一个输入,对应公式中的`x1`。FLOAT32、FLOAT16、BFLOAT16ND
x2输入用于Add计算的第二个输入,对应公式中的`x2`。FLOAT32、FLOAT16、BFLOAT16ND
gamma输入表示RmsNorm的缩放因子(权重),对应公式中的`g`。FLOAT32、FLOAT16、BFLOAT16ND
epsilon可选属性
  • 添加到分母中的值,以确保数值稳定,用于防止除0错误,对应公式中的`eps`。
  • 默认值为1e-6f。
FLOAT32-
x1输出表示最后的输出,Device侧的aclTensor,对应公式中的`RmsNorm(x)`。FLOAT32、FLOAT16、BFLOAT16ND
rstd输出表示归一化后的标准差倒数,对应公式中的`rstd`。FLOAT32ND
x2输出表示Add计算的结果,对应公式中的`x`。FLOAT32、FLOAT16、BFLOAT16ND
  • Atlas 推理系列产品 :

    • 所有输入参数和输出参数x1x2的数据类型不支持BFLOAT16。
    • 在当前产品下的使用场景下,输出参数rstd为无效参数,输出的值不生效。
  • Kirin X90/Kirin 9030处理器系列产品:所有输入、输出的数据类型不支持BFLOAT16。

约束说明

调用说明

调用方式样例代码说明
aclnn接口test_aclnn_inplace_add_rms_norm通过aclnnInplaceAddRmsNorm接口方式调用InplaceAddRmsNorm算子。
图模式-通过算子IR构图方式调用InplaceAddRmsNorm算子。

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

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

http://www.jsqmd.com/news/793348/

相关文章:

  • 《零基础学GPU KMD》专栏简介
  • Weaviate向量数据库实战:从官方示例到RAG应用开发全解析
  • 2018-11至2025-9 71个主要城市商品房租金均价数据(xlsx)
  • ARM CP15寄存器详解与底层开发实践
  • 【信息科学与工程学】计算机科学与自动化-——第十五篇云计算12- 裸金属
  • LInux常用指令(个人查询用)
  • CANN/ops-nn动态块MX量化算子
  • Payum实战案例:构建支持多种支付方式的电商平台完整指南 [特殊字符]
  • 3D堆叠封装技术:热挑战与优化方案
  • 【数据结构】与排序算法鏖战5天,我终于搞懂了排序的思路和实现--排序算法大全的保姆级攻略
  • 动态紧凑模型在电子热设计中的高效应用
  • ARM GICv3中断控制器与ICC_EOIR1寄存器详解
  • Paris注解处理器深度解析:从@Style到@StyleableChild的完整实现原理
  • 虽然市面上已经有人流量统计摄像头----但是我有价格优势
  • 12,Springboot3+vue3实现系统公告功能
  • 【C++ -Day7】封装实战 | 用类封装日志、配置和文件操作模块
  • 电子热量表设计:PIC16F913微控制器应用与热力计算
  • Scarpet脚本语言深度解析:在Fabric Carpet中编写高级自动化程序的完整指南
  • android C++ opencv 年龄 性别识别深度神经网络模型
  • CANN/asc-devkit向量最小值函数
  • 告别理论!用TI毫米波雷达开发板实测多普勒测速(附Python代码)
  • 从DES到AES:被‘遗忘’的IDEA算法,它的设计思想给现代密码学留下了什么?
  • CTO 每月烧 600 亿 token,3 个月完成百名程序员七八年写的 800 万行代码
  • AI编码助手经验治理:ExperienceEngine解决重复错误与智能进化
  • 2026年AI大模型接口中转站排行榜新鲜出炉!五大平台硬核数据对比,为开发者提供权威选型指南
  • 别再只用Matplotlib画图了!用Python这3个库(SciPy, NumPy, Scikit-learn)给你的数据曲线做个‘美容’
  • CANN/asc-devkit向量减法ReLU函数
  • 我们只能要求手机在拍摄的时候呈现45度-----采用常用模型
  • Tacacs+协议报文解密与全流程实战抓包解析
  • Groundhog:基于Git仓库的开发者时间自动追踪工具