文件最后提交记录最后更新时间
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29404 天前
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29404 天前
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29404 天前
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29404 天前
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29404 天前
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29404 天前
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29404 天前
README.md

AtanGrad

产品支持情况

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

功能说明

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

  • 计算公式(命名与 op_graph/atan_grad_proto.h 一致):

    zi=dyi×11+yi2z_i = dy_i \times \frac{1}{1 + y_i^2}

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

  • 等效分步计算(NPU 实现采用 Div 替代 Reciprocal+Mul,避免 INTRINSIC 模式精度不足):

    1. ti=yi×yit_i = y_i \times y_i(计算 y2y^2
    2. gi=ti+1.0g_i = t_i + 1.0(计算 1+y21 + y^2
    3. zi=dyi/giz_i = dy_i / g_i(直接除法,等价于 dyi×(1/(1+y2))dy_i \times (1 / (1+y^2))

参数说明

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

约束说明

  • y、dy、z 三者数据类型必须完全一致,不支持隐式类型转换。
  • y、dy、z 三者 shape 必须完全相同,不支持广播(broadcast)。
  • 支持空 Tensor(元素个数为 0)。
  • 支持 0-8 维 Tensor,0 维表示标量(scalar),此时 dy 和 z 也必须为 0 维。
  • 当 y 取值极大(如 fp16 最大值)时,y2y^2 可能溢出为 inf,此时 1/inf=01/\text{inf}=0,z=0,属于正常数值行为。
  • FP16/BF16 输入:NPU kernel 走 FP16/BF16 → FP32 中间计算 → FP16/BF16 的 Cast 模式(CANN kernel 默认实现约定)。FP32 输入:直接 FP32 计算。

调用说明

调用方式 样例代码 说明
图模式 test_geir_atan_grad.cpp 通过图模式方式调用AtanGrad算子。