| Files | Last commit | Last update |
|---|---|---|
fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Co-authored-by: qq_41311449<baihao29@huawei.com> # message auto-generated for no-merge-commit merge: !6575 merge master into master fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Created-by: qq_41311449 Commit-by: qq_41311449 Merged-by: cann-robot Description: ## 描述 1. 交付问题修复(FR-01/12/13/14/09/N-01) - FR-01(核心修复): tiling 新增 ShapesExactlyEqual 逐维校验(op_host/arch35/asin_grad_tiling_arch35.cpp:56),原先只比较 GetShapeSize() 会放行元素总数相同但维度排列不同的输入(如 y=2,3 vs dy=3,2),现 y/dy/z 必须逐维完全相同,并补 4 条 UT 覆盖 - FR-12: golden.py fp32 分支按输入 dtype 计算,0 维输入不再被提升为 float64 - FR-13: examples 两份副本按 dtype 宽度构造输入缓冲(fp16/bf16 位级转换),修正 y 值域注释 - FR-14: 3 个 CMakeLists 许可头换为 OAT 认可模板,代码 clang-format/ruff-format 格式化 - FR-09/N-01: README 调用说明改为 GE图模式并链接 asin_grad_proto.h;产品表 Atlas 200I/500 A2 由 √ 改为 × 2. ascend350 平台适配(参照 cann/ops-cv#1747 及同族算子 acos_grad 做法) - CMakeLists 增加 ascend350 计算单元与对应 tiling 目录 - asin_grad_def.cpp 追加 AddConfig("ascend350", aiCoreConfig) 3. 验证结论 - host UT 15/15 PASS(950/350 各一轮);TTK 冻结回归 L0 44 例、L2 16 例逐字段一致;pre-commit 12/12 通过 - --pkg --soc=ascend350/950 均构建成功,350 包含 kernel 及 ops-info 注册 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6575 | 17 days ago | |
迁移开源TF插件--math Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge transfer-math into master 迁移开源TF插件--math Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4308 | 3 months ago | |
legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 2 months ago | |
fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Co-authored-by: qq_41311449<baihao29@huawei.com> # message auto-generated for no-merge-commit merge: !6575 merge master into master fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Created-by: qq_41311449 Commit-by: qq_41311449 Merged-by: cann-robot Description: ## 描述 1. 交付问题修复(FR-01/12/13/14/09/N-01) - FR-01(核心修复): tiling 新增 ShapesExactlyEqual 逐维校验(op_host/arch35/asin_grad_tiling_arch35.cpp:56),原先只比较 GetShapeSize() 会放行元素总数相同但维度排列不同的输入(如 y=2,3 vs dy=3,2),现 y/dy/z 必须逐维完全相同,并补 4 条 UT 覆盖 - FR-12: golden.py fp32 分支按输入 dtype 计算,0 维输入不再被提升为 float64 - FR-13: examples 两份副本按 dtype 宽度构造输入缓冲(fp16/bf16 位级转换),修正 y 值域注释 - FR-14: 3 个 CMakeLists 许可头换为 OAT 认可模板,代码 clang-format/ruff-format 格式化 - FR-09/N-01: README 调用说明改为 GE图模式并链接 asin_grad_proto.h;产品表 Atlas 200I/500 A2 由 √ 改为 × 2. ascend350 平台适配(参照 cann/ops-cv#1747 及同族算子 acos_grad 做法) - CMakeLists 增加 ascend350 计算单元与对应 tiling 目录 - asin_grad_def.cpp 追加 AddConfig("ascend350", aiCoreConfig) 3. 验证结论 - host UT 15/15 PASS(950/350 各一轮);TTK 冻结回归 L0 44 例、L2 16 例逐字段一致;pre-commit 12/12 通过 - --pkg --soc=ascend350/950 均构建成功,350 包含 kernel 及 ops-info 注册 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6575 | 17 days ago | |
fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Co-authored-by: qq_41311449<baihao29@huawei.com> # message auto-generated for no-merge-commit merge: !6575 merge master into master fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Created-by: qq_41311449 Commit-by: qq_41311449 Merged-by: cann-robot Description: ## 描述 1. 交付问题修复(FR-01/12/13/14/09/N-01) - FR-01(核心修复): tiling 新增 ShapesExactlyEqual 逐维校验(op_host/arch35/asin_grad_tiling_arch35.cpp:56),原先只比较 GetShapeSize() 会放行元素总数相同但维度排列不同的输入(如 y=2,3 vs dy=3,2),现 y/dy/z 必须逐维完全相同,并补 4 条 UT 覆盖 - FR-12: golden.py fp32 分支按输入 dtype 计算,0 维输入不再被提升为 float64 - FR-13: examples 两份副本按 dtype 宽度构造输入缓冲(fp16/bf16 位级转换),修正 y 值域注释 - FR-14: 3 个 CMakeLists 许可头换为 OAT 认可模板,代码 clang-format/ruff-format 格式化 - FR-09/N-01: README 调用说明改为 GE图模式并链接 asin_grad_proto.h;产品表 Atlas 200I/500 A2 由 √ 改为 × 2. ascend350 平台适配(参照 cann/ops-cv#1747 及同族算子 acos_grad 做法) - CMakeLists 增加 ascend350 计算单元与对应 tiling 目录 - asin_grad_def.cpp 追加 AddConfig("ascend350", aiCoreConfig) 3. 验证结论 - host UT 15/15 PASS(950/350 各一轮);TTK 冻结回归 L0 44 例、L2 16 例逐字段一致;pre-commit 12/12 通过 - --pkg --soc=ascend350/950 均构建成功,350 包含 kernel 及 ops-info 注册 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6575 | 17 days ago | |
fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Co-authored-by: qq_41311449<baihao29@huawei.com> # message auto-generated for no-merge-commit merge: !6575 merge master into master fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Created-by: qq_41311449 Commit-by: qq_41311449 Merged-by: cann-robot Description: ## 描述 1. 交付问题修复(FR-01/12/13/14/09/N-01) - FR-01(核心修复): tiling 新增 ShapesExactlyEqual 逐维校验(op_host/arch35/asin_grad_tiling_arch35.cpp:56),原先只比较 GetShapeSize() 会放行元素总数相同但维度排列不同的输入(如 y=2,3 vs dy=3,2),现 y/dy/z 必须逐维完全相同,并补 4 条 UT 覆盖 - FR-12: golden.py fp32 分支按输入 dtype 计算,0 维输入不再被提升为 float64 - FR-13: examples 两份副本按 dtype 宽度构造输入缓冲(fp16/bf16 位级转换),修正 y 值域注释 - FR-14: 3 个 CMakeLists 许可头换为 OAT 认可模板,代码 clang-format/ruff-format 格式化 - FR-09/N-01: README 调用说明改为 GE图模式并链接 asin_grad_proto.h;产品表 Atlas 200I/500 A2 由 √ 改为 × 2. ascend350 平台适配(参照 cann/ops-cv#1747 及同族算子 acos_grad 做法) - CMakeLists 增加 ascend350 计算单元与对应 tiling 目录 - asin_grad_def.cpp 追加 AddConfig("ascend350", aiCoreConfig) 3. 验证结论 - host UT 15/15 PASS(950/350 各一轮);TTK 冻结回归 L0 44 例、L2 16 例逐字段一致;pre-commit 12/12 通过 - --pkg --soc=ascend350/950 均构建成功,350 包含 kernel 及 ops-info 注册 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6575 | 17 days ago | |
fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Co-authored-by: qq_41311449<baihao29@huawei.com> # message auto-generated for no-merge-commit merge: !6575 merge master into master fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Created-by: qq_41311449 Commit-by: qq_41311449 Merged-by: cann-robot Description: ## 描述 1. 交付问题修复(FR-01/12/13/14/09/N-01) - FR-01(核心修复): tiling 新增 ShapesExactlyEqual 逐维校验(op_host/arch35/asin_grad_tiling_arch35.cpp:56),原先只比较 GetShapeSize() 会放行元素总数相同但维度排列不同的输入(如 y=2,3 vs dy=3,2),现 y/dy/z 必须逐维完全相同,并补 4 条 UT 覆盖 - FR-12: golden.py fp32 分支按输入 dtype 计算,0 维输入不再被提升为 float64 - FR-13: examples 两份副本按 dtype 宽度构造输入缓冲(fp16/bf16 位级转换),修正 y 值域注释 - FR-14: 3 个 CMakeLists 许可头换为 OAT 认可模板,代码 clang-format/ruff-format 格式化 - FR-09/N-01: README 调用说明改为 GE图模式并链接 asin_grad_proto.h;产品表 Atlas 200I/500 A2 由 √ 改为 × 2. ascend350 平台适配(参照 cann/ops-cv#1747 及同族算子 acos_grad 做法) - CMakeLists 增加 ascend350 计算单元与对应 tiling 目录 - asin_grad_def.cpp 追加 AddConfig("ascend350", aiCoreConfig) 3. 验证结论 - host UT 15/15 PASS(950/350 各一轮);TTK 冻结回归 L0 44 例、L2 16 例逐字段一致;pre-commit 12/12 通过 - --pkg --soc=ascend350/950 均构建成功,350 包含 kernel 及 ops-info 注册 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6575 | 17 days ago | |
fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Co-authored-by: qq_41311449<baihao29@huawei.com> # message auto-generated for no-merge-commit merge: !6575 merge master into master fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Created-by: qq_41311449 Commit-by: qq_41311449 Merged-by: cann-robot Description: ## 描述 1. 交付问题修复(FR-01/12/13/14/09/N-01) - FR-01(核心修复): tiling 新增 ShapesExactlyEqual 逐维校验(op_host/arch35/asin_grad_tiling_arch35.cpp:56),原先只比较 GetShapeSize() 会放行元素总数相同但维度排列不同的输入(如 y=2,3 vs dy=3,2),现 y/dy/z 必须逐维完全相同,并补 4 条 UT 覆盖 - FR-12: golden.py fp32 分支按输入 dtype 计算,0 维输入不再被提升为 float64 - FR-13: examples 两份副本按 dtype 宽度构造输入缓冲(fp16/bf16 位级转换),修正 y 值域注释 - FR-14: 3 个 CMakeLists 许可头换为 OAT 认可模板,代码 clang-format/ruff-format 格式化 - FR-09/N-01: README 调用说明改为 GE图模式并链接 asin_grad_proto.h;产品表 Atlas 200I/500 A2 由 √ 改为 × 2. ascend350 平台适配(参照 cann/ops-cv#1747 及同族算子 acos_grad 做法) - CMakeLists 增加 ascend350 计算单元与对应 tiling 目录 - asin_grad_def.cpp 追加 AddConfig("ascend350", aiCoreConfig) 3. 验证结论 - host UT 15/15 PASS(950/350 各一轮);TTK 冻结回归 L0 44 例、L2 16 例逐字段一致;pre-commit 12/12 通过 - --pkg --soc=ascend350/950 均构建成功,350 包含 kernel 及 ops-info 注册 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6575 | 17 days ago |
AsinGrad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:AsinGrad是Asin(反正弦)算子的梯度算子,用于深度学习框架自动微分的反向传播阶段。给定正向输入y和上游梯度dy,计算输出梯度z。
-
计算公式:
zi=dyi1−yi2z_i = \frac{dy_i}{\sqrt{1 - y_i^2}} zi=1−yi2dyi
其中:
- y:正向Asin算子的输入tensor,值域 [-1, 1]
- dy:上游传播的梯度(grad_output)
- z:计算得到的输入梯度(grad_input)
参数说明
| 参数名 | 输入/输出 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| y | 输入 | 正向Asin算子的输入tensor,对应公式中的y。支持0-8维tensor,支持空tensor。shape需要与dy的shape完全相同。 | BFLOAT16、FLOAT16、FLOAT32 | ND |
| dy | 输入 | 上游传播的梯度tensor,对应公式中的dy。支持0-8维tensor,支持空tensor。shape需要与y的shape完全相同。 | BFLOAT16、FLOAT16、FLOAT32 | ND |
| z | 输出 | 计算得到的输入梯度tensor,对应公式中的z。shape与输入相同,数据类型与输入一致。 | BFLOAT16、FLOAT16、FLOAT32 | ND |
约束说明
- y和dy的数据类型必须一致,z的数据类型与y/dy一致,仅支持FLOAT、FLOAT16、BFLOAT16。
- y和dy的shape必须完全相同,不支持广播。
- 支持0-8维tensor,支持空tensor(0元素)。
- 仅支持ND数据格式。输入输出配置了自动连续化(AutoContiguous),非连续Tensor由框架转换为连续Tensor后进入Kernel。
- y的值域应在 [-1, 1] 范围内。当 |y| = 1时,计算结果为inf;当 |y| > 1时,计算结果为NaN。
- FLOAT16、BFLOAT16均转换为FLOAT32进行中间计算,计算结果再转换回输入数据类型;FLOAT32直接进行FLOAT32计算。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| GE图模式 | test_geir_asin_grad.cpp | 通过GE图模式调用AsinGrad算子,算子IR定义见asin_grad_proto.h。 |