| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 3 天前 | |
math仓算子错误日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5345 merge master into master math仓算子错误日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓算子日志进行整改(关联 Issue #2853),主要目的是规范算子错误日志的级别与内容。改动覆盖约 35 个文件,核心内容包括三类:将 examples/test_geir_*.cpp 示例程序中 GE 初始化失败、加图失败、运行图失败、反初始化失败等错误场景的日志级别由 INFO 修正为 ERROR;修正 op_kernel_aicpu、op_api、tiling、framework 插件中参数校验及错误提示日志的英文语法与拼写;同时清理行尾多余空白字符。整体为纯日志与文档性整改,不涉及算子计算逻辑与对外接口行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5345 | 1 个月前 | |
迁移开源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 | 2 个月前 | |
refactor: 为公共op_api头文件增加math后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5839 merge refactor/math-prefix-common-headers into master refactor: 为公共op_api头文件增加math后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-math/common/inc/op_api 中的 level2_base.h、level2_base_caculation.h、op_api_def.h 名称缺少仓库标识。在软件包合并交付或公共 include 目录集成时,存在被其他仓库同名文件覆盖,或因 include 路径顺序产生误引用的风险。 本 MR 参考同目录已有的 op_resource_math.h 命名,为三个公共头文件增加 _math 后缀,并通过兼容转发头分阶段迁移现有引用。 ## 修改内容 - 新增 level2_base_math.h、level2_base_caculation_math.h、op_api_def_math.h,作为带仓库标识的正式实现; - 原 level2_base.h、level2_base_caculation.h、op_api_def.h 保留为轻量兼容转发头,避免未迁移代码立即失效; - 新头文件之间的内部依赖统一使用 _math 后缀路径; - 更新 classify_rule.yaml,让 level2_base_math.h 继承原组件及 UT 覆盖率分类; - 将 89 处旧头文件引用迁移到新名称: - level2_base.h:20 处; - level2_base_caculation.h:9 处; - op_api_def.h:60 处; - 当前 MR 共修改 81 个文件,新增 434 行、删除 384 行。 为减少无关格式变化和后续合并冲突,本次未迁移会触发额外 clang-format、尾部空白或 EOF 修复,或组合触发既有 UT 隔离问题的文件。这些文件将拆分到后续 MR 逐步处理。 ## 剩余迁移 当前仓内仍有 67 处旧引用,分布在 65 个唯一文件中,继续通过兼容转发头工作: - level2_base.h:24 个文件; - level2_base_caculation.h:2 个文件; - op_api_def.h:41 个文件。 待旧引用分批迁移完成后,再结合实际打包和安装规则移除兼容转发头。本 MR 不移除旧头文件,也不声明已完成最终软件包去重。 ## 关联的 Issue 关联并在合入后关闭 #3243: https://gitcode.com/cann/ops-math/issues/3243 ## 测试 已完成: - 对本轮新增的 69 个纯引用替换文件逐行检查,80 组增删均仅修改目标 include,无其他代码或格式变化; - 额外纳入 aclnn_log10.cpp 和 aclnn_logdet.cpp,每个文件最终均为 3 行新增、3 行删除,低于 10 行修改阈值;math/sin/op_api/aclnn_sin.cpp 因聚合 UT 存在平台状态泄漏暂缓迁移; - 在 CANN 9.0.0 容器执行完整 pre-commit,尾部空白、EOF、clang-format、codespell 和 OAT 等检查全部通过; - 在 CANN 9.0.0 容器执行 bash build.sh --opapi -j32,全量构建通过; - 成功生成 build/libopapi_math.so,SHA-256:abaa8f8408979d931a8dad09f8e06875722fc42bbdddc72aaf9f14944bc163ea; - classify_rule.yaml 可正常解析,三个旧文件继续作为兼容转发头使用。 ## 文档更新 不涉及用户文档变更。 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码重构 See merge request: cann/ops-math!5839 | 11 天前 | |
fix(abs_grad/complex_abs/rsqrt): 为算子原型注册添加宏定义保护,防止重复注册 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !5096 merge fix/add-proto-macro-guard into master fix(abs_grad/complex_abs/rsqrt): 为算子原型注册添加宏定义保护,防止重复注册 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 本 PR 为 AbsGrad、ComplexAbs、Rsqrt 三个算子的 proto 头文件中的 REG_OP 注册块添加 #ifndef/#define/#endif 宏定义保护,防止在同一编译单元中多次包含头文件时出现算子重复注册问题。 ### 涉及文件 | 文件 | 宏定义 | +行 | -行 | |------|--------|-----|-----| | math/abs_grad/op_graph/abs_grad_proto.h | OPS_PROTO_DEF_ABSGRAD | +3 | -0 | | math/complex_abs/op_graph/complex_abs_proto.h | OPS_PROTO_DEF_COMPLEXABS | +3 | -0 | | math/rsqrt/op_graph/rsqrt_proto.h | OPS_PROTO_DEF_RSQRT | +3 | -0 | ### 变更内容 在三个 proto 头文件的 REG_OP(...) 块外层包裹宏定义保护: cpp #ifndef OPS_PROTO_DEF_XXX #define OPS_PROTO_DEF_XXX REG_OP(Xxx) ... .OP_END_FACTORY_REG(Xxx) #endif // OPS_PROTO_DEF_XXX ### 变更原因 REG_OP 宏在命名空间作用域执行算子注册,若同一编译单元通过不同路径多次包含同一 proto 头文件(即使存在头文件级别的 #ifndef OP_PROTO_XXX_PROTO_H_ 保护,但在某些构建场景下可能绕过),会导致重复注册符号。添加 REG_OP 块级别的宏保护作为额外防线,确保注册只执行一次。 ## 关联的Issue 关联Issue #2886 ## 测试 - 编译验证通过,无重复注册告警 - 算子功能正常,注册行为不受影响 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5096 | 1 个月前 | |
批量修改ws=0 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !6212 merge master into master 批量修改ws=0 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改算子workspace=0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3013 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6212 | 5 天前 | |
批量修改ws=0 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !6212 merge master into master 批量修改ws=0 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改算子workspace=0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3013 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6212 | 5 天前 | |
Aicpu op [CaseCondition、Less、Log、NotEqual、ReduceAll、Rsqrt、Sqrt] open const folding Co-authored-by: FengHaozhan<fenghaozhan@huawei.com> # message auto-generated for no-merge-commit merge: !5103 merge ops-2026-08 into master Aicpu op [CaseCondition、Less、Log、NotEqual、ReduceAll、Rsqrt、Sqrt] open const folding Created-by: FengHaozhan Commit-by: FengHaozhan Merged-by: cann-robot Description: ## 描述 为 CaseCondition、Less、Log、NotEqual、ReduceAll、Rsqrt、Sqrt 等 AICPU 算子补齐 host 侧常量折叠接线: - 在目标算子 CMake 配置中开启 HOSTCPU TRUE,使 host 常量折叠目标参与构建。 - 将 AICPU kernel 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2,保留设备侧既有计算语义并满足 host 侧注册要求。 - 为 Rsqrt 和 Sqrt 的 AICPU JSON 配置增加 OPS_FLAG_OPEN。 - 为 CaseCondition 新增 RT2 InferShape(标量输出)和 InferDataType(INT32 输出)实现,并补充对应 op_host/op_graph UT;同步调整 op_graph UT 链接顺序以保证注册符号可解析。 ## 关联的Issue #2906 ## 测试 - 新增 CaseCondition RT2 InferShape UT,覆盖输出为标量的推导结果。 - 新增 CaseCondition InferDataType UT,覆盖输出类型为 INT32 的推导结果。 - 本次未在 PR 中记录实际构建、UT 执行或设备验证结果,需由 CI/验证环境补充确认 host folding SO 产物及常量折叠触发情况。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建与注册配置调整 See merge request: cann/ops-math!5103 | 1 个月前 | |
批量算子golden支持全通路 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !5750 merge master into master 批量算子golden支持全通路 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量算子golfen新增支持aclnn,e2e通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3210 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5750 | 1 个月前 | |
abs等20个算子新增ascend350平台支持 Co-authored-by: ASCEND222<dongfei16@h-partners.com> # message auto-generated for no-merge-commit merge: !5322 merge master into master abs等20个算子新增ascend350平台支持 Created-by: ASCEND222 Commit-by: ASCEND222 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> abs等20个算子新增ascend350平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3028 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5322 | 1 个月前 | |
docs: 重写Log1p/Rsqrt/Sin/MaskedScale/RsqrtGrad算子README为算子级文档,去除与aclnn API文档重复内容;修正RsqrtGrad复制自SqrtGrad未改名问题,fix#3606 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !6402 merge doc-readme-dedup-fix into master docs: 重写Log1p/Rsqrt/Sin/MaskedScale/RsqrtGrad算子README为算子级文档,去除与aclnn API文档重复内容;修正RsqrtGrad复制自SqrtGrad未改名问题,fix#3606 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 5 个算子的 README 重写为算子级文档(功能说明/参数说明/约束说明/调用说明),去除与 docs/ 下 aclnn API 文档重复的函数原型、两段式接口参数说明、返回值与错误码内容(fix #3606);并修正 RsqrtGrad README 复制自 SqrtGrad 未改名的问题。 ### 1. README 重写为算子级文档(去除与 aclnn API 文档重复内容) - **math/log1p/README.md**(+44 -85):标题 aclnnLog1p&aclnnInplaceLog1p → Log1p;删除函数原型与 aclnnLog1p/aclnnInplaceLog1p 两段式接口详细说明;新增参数说明表(x/y:FLOAT、FLOAT16、BFLOAT16,与 log1p_def.cpp 一致);调用说明指向 examples 与 docs/aclnnLog1p&aclnnInplaceLog1p.md。 - **math/rsqrt/README.md**(+43 -85):同上模式重写,计算公式 y = 1/√x,参数 x/y:FLOAT、FLOAT16、BFLOAT16。 - **math/sin/README.md**(+4 -75):参数名规范化(self→x、out→y);删除 aclnnSin/aclnnInplaceSin 两段式接口详细说明;保留 BFLOAT16 支持范围备注。 - **math/masked_scale/README.md**(+56 -50):新增参数说明表(x/y:FLOAT16、BFLOAT16、FLOAT;mask:INT8、UINT8、FLOAT16、FLOAT;scale 属性:FLOAT);公式变量名与参数表对齐(self→x、out→y)。 - **math/rsqrt_grad/README.md**(+15 -13):重写为算子级文档并修正复制错误(见下)。 ### 2. 修正 RsqrtGrad 复制自 SqrtGrad 未改名问题 - **README.md**: - 标题 SqrtGrad → RsqrtGrad;算子功能「完成梯度平方根计算」→「Rsqrt算子的反向梯度计算」 - 计算公式 z = dy * 0.5 / y → z = -0.5 × dy × y³(y 为 Rsqrt 前向输出) - 参数数据类型由 SqrtGrad 的 DT_FLOAT/DT_FLOAT_16/DT_COMPLEX128/DT_COMPLEX64/DT_DOUBLE 修正为 BFLOAT16、FLOAT16、FLOAT、INT8、INT32(与 rsqrt_grad_def.cpp 的 DataType 声明一致) - 产品支持修正为 Ascend 950PR&950DT √ / Atlas A3 × / Atlas A2 ×(rsqrt_grad_def.cpp 仅 AddConfig ascend950/ascend350) - 算子 IR 链接由 ../sqrt_grad/op_graph/sqrt_grad_proto.h 修正为 ../op_graph/rsqrt_grad_proto.h - **examples/test_geir_sqrt_grad.cpp → test_geir_rsqrt_grad.cpp**(重命名,R095):include 的 proto 头文件、宏内变量名 sqrtGrad→rsqrtGrad 等同步修正。 ## 关联的Issue - #3606 ## 测试 - 纯文档与示例代码改名变更,无算子逻辑修改,不涉及编译与功能测试 - 已核对 log1p_def.cpp / rsqrt_grad_def.cpp 的 DataType 与 AICore AddConfig 声明,确认 README 中数据类型与产品支持情况与代码一致 ## 文档更新 - math/log1p/README.md - math/rsqrt/README.md - math/sin/README.md - math/masked_scale/README.md - math/rsqrt_grad/README.md - math/rsqrt_grad/examples/test_geir_sqrt_grad.cpp → test_geir_rsqrt_grad.cpp(重命名) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6402 | 3 天前 |
Rsqrt
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:求输入张量x每个元素的平方根的倒数,并将结果保存到输出张量y中。
-
计算公式:
y=1xy = \frac{1}{\sqrt{x}} y=x1
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量,公式中的x。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| y | 输出 | 输出张量,公式中的y,shape与x一致。 | FLOAT、FLOAT16、BFLOAT16 | ND |
- Atlas 200I/500 A2推理产品、Atlas推理系列产品、Atlas训练系列产品:不支持BFLOAT16。
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_rsqrt | 通过aclnnRsqrt或aclnnInplaceRsqrt接口方式调用Rsqrt算子。 |
| 图模式调用 | test_geir_rsqrt | 通过算子IR构图方式调用Rsqrt算子。 |