RmsNorm 算子 API 描述【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench1. 算子简介计算 RMS (均方根) 归一化。主要应用场景大语言模型中的归一化层LLaMA、Gemma 等使用 RMSNorm 替代 LayerNormTransformer 架构中的预归一化Pre-Norm相比 LayerNorm 省去均值计算推理效率更高算子特征难度等级L2Normalization双输入x 和 gamma单输出涉及平方、均值、开方、除法、乘法等多步计算沿最后一维进行归一化gamma 为可学习的缩放参数2. 算子定义数学公式基本公式$$ y \frac{x}{\sqrt{\text{mean}(x^2) \epsilon}} \cdot \gamma $$展开为$$ y_i \frac{x_i}{\sqrt{\frac{1}{D}\sum_{j1}^{D}x_j^2 \epsilon}} \cdot \gamma_i $$其中D为最后一维的大小归一化维度epsilon为数值稳定性参数防止除零gamma为逐元素的缩放参数shape 为 (D,)与 LayerNorm 不同RMSNorm 不计算均值也没有偏置beta参数3. 接口规范算子原型cann_bench.rms_norm(Tensor x, Tensor gamma, float epsilon) - Tensor y输入参数说明参数类型默认值描述xTensor必选输入张量gammaTensor必选缩放参数shape 为输入最后一维大小epsilonfloat1e-6数值稳定性参数输出参数Shapedtype描述y与输入 x 相同与输入 x 相同RMS 归一化后的张量数据类型x dtypegamma dtype输出 dtypefloat16float16float16float32float32float32bfloat16bfloat16bfloat16规则与约束x 的 shape 为 (..., D)gamma 的 shape 为 (D,)其中 D 为最后一维大小gamma 的 dtype 需与 x 一致epsilon 为正数通常取 1e-6 或 1e-5需注意数值稳定性当输入值极小时mean(x^2) 可能下溢当输入值极大时x^2 可能溢出4. 精度要求采用生态算子精度标准进行验证。误差指标平均相对误差MERE采样点中相对误差平均值$$ \text{MERE} \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$最大相对误差MARE采样点中相对误差最大值$$ \text{MARE} \max(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$通过标准数据类型FLOAT16BFLOAT16FLOAT32HiFLOAT32FLOAT8 E4M3FLOAT8 E5M2通过阈值(Threshold)2^-102^-72^-132^-112^-32^-2当平均相对误差 MERE Threshold最大相对误差 MARE 10 * Threshold 时判定为通过。5. 标准 Golden 代码import torch RmsNorm 算子 Torch Golden 参考实现 计算 RMS (均方根) 归一化 公式: y x / sqrt(mean(x^2) eps) * gamma 参考论文: Root Mean Square Layer Normalization https://arxiv.org/abs/1910.07467 Parameters: - x: (..., D) 输入张量最后一维为归一化维度 - gamma: (D,) 缩放参数 - epsilon: float, 默认 1e-6 - 数值稳定性参数 def rms_norm( x: torch.Tensor, gamma: torch.Tensor, epsilon: float 1e-6 ) - torch.Tensor: 计算 RMS (均方根) 归一化 Args: x: 输入张量shape (..., D) 最后一维 D 为归一化维度 gamma: 缩放参数shape (D,) 与输入最后一维大小相同 epsilon: 数值稳定性参数防止除零 默认值 1e-6 Returns: RMS 归一化后的张量shape 与输入相同 Examples: x torch.randn(32, 128, 4096) gamma torch.ones(4096) y rms_norm(x, gamma, epsilon1e-6) # 计算均方根 rms torch.sqrt(torch.mean(x ** 2, dim-1, keepdimTrue) epsilon) # 归一化并乘以缩放参数 y x / rms * gamma return y6. 额外信息算子调用示例import torch import cann_bench x torch.randn(32, 128, 4096, dtypetorch.float32, devicenpu) gamma torch.ones(4096, dtypetorch.float32, devicenpu) y cann_bench.rms_norm(x, gamma, epsilon1e-6) y cann_bench.rms_norm(x, gamma, epsilon1e-5)【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
CANN/cann-bench RmsNorm算子
RmsNorm 算子 API 描述【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench1. 算子简介计算 RMS (均方根) 归一化。主要应用场景大语言模型中的归一化层LLaMA、Gemma 等使用 RMSNorm 替代 LayerNormTransformer 架构中的预归一化Pre-Norm相比 LayerNorm 省去均值计算推理效率更高算子特征难度等级L2Normalization双输入x 和 gamma单输出涉及平方、均值、开方、除法、乘法等多步计算沿最后一维进行归一化gamma 为可学习的缩放参数2. 算子定义数学公式基本公式$$ y \frac{x}{\sqrt{\text{mean}(x^2) \epsilon}} \cdot \gamma $$展开为$$ y_i \frac{x_i}{\sqrt{\frac{1}{D}\sum_{j1}^{D}x_j^2 \epsilon}} \cdot \gamma_i $$其中D为最后一维的大小归一化维度epsilon为数值稳定性参数防止除零gamma为逐元素的缩放参数shape 为 (D,)与 LayerNorm 不同RMSNorm 不计算均值也没有偏置beta参数3. 接口规范算子原型cann_bench.rms_norm(Tensor x, Tensor gamma, float epsilon) - Tensor y输入参数说明参数类型默认值描述xTensor必选输入张量gammaTensor必选缩放参数shape 为输入最后一维大小epsilonfloat1e-6数值稳定性参数输出参数Shapedtype描述y与输入 x 相同与输入 x 相同RMS 归一化后的张量数据类型x dtypegamma dtype输出 dtypefloat16float16float16float32float32float32bfloat16bfloat16bfloat16规则与约束x 的 shape 为 (..., D)gamma 的 shape 为 (D,)其中 D 为最后一维大小gamma 的 dtype 需与 x 一致epsilon 为正数通常取 1e-6 或 1e-5需注意数值稳定性当输入值极小时mean(x^2) 可能下溢当输入值极大时x^2 可能溢出4. 精度要求采用生态算子精度标准进行验证。误差指标平均相对误差MERE采样点中相对误差平均值$$ \text{MERE} \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$最大相对误差MARE采样点中相对误差最大值$$ \text{MARE} \max(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$通过标准数据类型FLOAT16BFLOAT16FLOAT32HiFLOAT32FLOAT8 E4M3FLOAT8 E5M2通过阈值(Threshold)2^-102^-72^-132^-112^-32^-2当平均相对误差 MERE Threshold最大相对误差 MARE 10 * Threshold 时判定为通过。5. 标准 Golden 代码import torch RmsNorm 算子 Torch Golden 参考实现 计算 RMS (均方根) 归一化 公式: y x / sqrt(mean(x^2) eps) * gamma 参考论文: Root Mean Square Layer Normalization https://arxiv.org/abs/1910.07467 Parameters: - x: (..., D) 输入张量最后一维为归一化维度 - gamma: (D,) 缩放参数 - epsilon: float, 默认 1e-6 - 数值稳定性参数 def rms_norm( x: torch.Tensor, gamma: torch.Tensor, epsilon: float 1e-6 ) - torch.Tensor: 计算 RMS (均方根) 归一化 Args: x: 输入张量shape (..., D) 最后一维 D 为归一化维度 gamma: 缩放参数shape (D,) 与输入最后一维大小相同 epsilon: 数值稳定性参数防止除零 默认值 1e-6 Returns: RMS 归一化后的张量shape 与输入相同 Examples: x torch.randn(32, 128, 4096) gamma torch.ones(4096) y rms_norm(x, gamma, epsilon1e-6) # 计算均方根 rms torch.sqrt(torch.mean(x ** 2, dim-1, keepdimTrue) epsilon) # 归一化并乘以缩放参数 y x / rms * gamma return y6. 额外信息算子调用示例import torch import cann_bench x torch.randn(32, 128, 4096, dtypetorch.float32, devicenpu) gamma torch.ones(4096, dtypetorch.float32, devicenpu) y cann_bench.rms_norm(x, gamma, epsilon1e-6) y cann_bench.rms_norm(x, gamma, epsilon1e-5)【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考