文件最后提交记录最后更新时间
[CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !2267 merge master into master [CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 AtanGrad算子支持Ascend950 AscendC实现 一、背景信息 (必填) experimental路径下的自定义算子AtanGrad支持Ascend950 二、价值/作用 (必填) AtanGrad支持Ascend950 三、设计方案 (必填) 修改def信息库文件 3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等) 3.2 总体设计 3.2.1 算子支持的数据类型 3.2.2 host侧设计 3.2.3 kernel侧设计 3.3 支持硬件 3.4 算子约束限制 💡 备注(选填) See merge request: cann/ops-math!22671 个月前
[CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !2267 merge master into master [CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 AtanGrad算子支持Ascend950 AscendC实现 一、背景信息 (必填) experimental路径下的自定义算子AtanGrad支持Ascend950 二、价值/作用 (必填) AtanGrad支持Ascend950 三、设计方案 (必填) 修改def信息库文件 3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等) 3.2 总体设计 3.2.1 算子支持的数据类型 3.2.2 host侧设计 3.2.3 kernel侧设计 3.3 支持硬件 3.4 算子约束限制 💡 备注(选填) See merge request: cann/ops-math!22671 个月前
[CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !2267 merge master into master [CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 AtanGrad算子支持Ascend950 AscendC实现 一、背景信息 (必填) experimental路径下的自定义算子AtanGrad支持Ascend950 二、价值/作用 (必填) AtanGrad支持Ascend950 三、设计方案 (必填) 修改def信息库文件 3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等) 3.2 总体设计 3.2.1 算子支持的数据类型 3.2.2 host侧设计 3.2.3 kernel侧设计 3.3 支持硬件 3.4 算子约束限制 💡 备注(选填) See merge request: cann/ops-math!22671 个月前
[CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !2267 merge master into master [CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 AtanGrad算子支持Ascend950 AscendC实现 一、背景信息 (必填) experimental路径下的自定义算子AtanGrad支持Ascend950 二、价值/作用 (必填) AtanGrad支持Ascend950 三、设计方案 (必填) 修改def信息库文件 3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等) 3.2 总体设计 3.2.1 算子支持的数据类型 3.2.2 host侧设计 3.2.3 kernel侧设计 3.3 支持硬件 3.4 算子约束限制 💡 备注(选填) See merge request: cann/ops-math!22671 个月前
[CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !2267 merge master into master [CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 AtanGrad算子支持Ascend950 AscendC实现 一、背景信息 (必填) experimental路径下的自定义算子AtanGrad支持Ascend950 二、价值/作用 (必填) AtanGrad支持Ascend950 三、设计方案 (必填) 修改def信息库文件 3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等) 3.2 总体设计 3.2.1 算子支持的数据类型 3.2.2 host侧设计 3.2.3 kernel侧设计 3.3 支持硬件 3.4 算子约束限制 💡 备注(选填) See merge request: cann/ops-math!22671 个月前
[CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !2267 merge master into master [CANNBot]AtanGrad算子支持Ascend950 AscendC实现 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 AtanGrad算子支持Ascend950 AscendC实现 一、背景信息 (必填) experimental路径下的自定义算子AtanGrad支持Ascend950 二、价值/作用 (必填) AtanGrad支持Ascend950 三、设计方案 (必填) 修改def信息库文件 3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等) 3.2 总体设计 3.2.1 算子支持的数据类型 3.2.2 host侧设计 3.2.3 kernel侧设计 3.3 支持硬件 3.4 算子约束限制 💡 备注(选填) See merge request: cann/ops-math!22671 个月前
fix: 修复 README 断链问题(共 9 处) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !2805 merge fix-readme-broken-links into master fix: 修复 README 断链问题(共 9 处) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: ## 问题概述 通过断链扫描发现 ops-math 仓库 README.md 中存在 9 处断链,影响用户查阅示例代码和接口文档。 ## 修复内容 ### 1. 文件不存在导致的断链(6 处) - conversion/pad_v2/README.md: 修正 examples 链接路径(添加 arch35/ 层级) - experimental/math/acosh/README.md: 删除不存在的 inplace 版本链接 - experimental/math/reduce_mean_with_count/README.md: 删除占位链接 - experimental/math/atan_grad/README.md: 删除不存在的 docs 目录链接,标注待补充 ### 2. 链接换行导致的断链(3 处) - random/stateless_random_normal_v3/README.md: 合并跨行链接 - math/nan_to_num/README.md: 合并跨行链接 - conversion/matmul_v2_compress_dequant/README.md: 合并跨行链接 ## 关联 Issue Closes #1582 See merge request: cann/ops-math!280516 天前
README.md

AtanGrad

产品支持情况

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

功能说明

  • 算子功能:计算反正切函数(atan)的输入梯度,用于神经网络反向传播中的梯度传递。

  • 计算公式:

    dxi=dyi×11+xi2dx_i = dy_i \times \frac{1}{1 + x_i^2}

    其中 xx 为前向计算的输入张量(atan 函数自变量),dydy 为上游传入的梯度张量,dxdx 为输出的输入梯度张量。

  • 等效分步计算:

    1. ti=xi×xit_i = x_i \times x_i(计算 x2x^2
    2. gi=ti+1.0g_i = t_i + 1.0(计算 1+x21 + x^2
    3. ri=1/gir_i = 1 / g_i(取倒数,即 atan 函数的导数)
    4. dxi=dyi×ridx_i = dy_i \times r_i(乘以上游梯度)

参数说明

参数名 输入/输出 描述 数据类型 数据格式
x 输入 前向计算输入张量,对应公式中 x,为 atan 函数自变量。 FLOAT16、FLOAT、BFLOAT16 ND
dy 输入 上游传入的梯度张量,对应公式中 dy。数据类型须与 x 完全一致。 FLOAT16、FLOAT、BFLOAT16 ND
dx 输出 输出的输入梯度张量,对应公式中 dx。数据类型须与 x 完全一致。 FLOAT16、FLOAT、BFLOAT16 ND

约束说明

  • aclnnAtanGrad 默认确定性实现。
  • x、dy、dx 三者数据类型必须完全一致,不支持隐式类型转换。
  • x、dy、dx 三者 shape 必须完全相同,不支持广播(broadcast)。
  • 支持空 Tensor(元素个数为 0)。
  • 支持 0-8 维 Tensor,0 维表示标量(scalar),此时 dy 和 dx 也必须为 0 维。
  • 当 x 取值极大(如 fp16 最大值)时,x2x^2 可能溢出为 inf,此时 1/inf=01/\text{inf}=0,dx=0,属于正常数值行为。

调用说明

调用方式 调用样例 说明
aclnn 调用 test_aclnn_atan_grad 调用前需完成自定义算子包的编译与安装(bash build.sh --soc=ascend910b)。

参考资源

接口文档和设计文档待补充。