| Files | Last commit | Last update |
|---|---|---|
Abs示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4641 merge raii-abs into master Abs示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/abs/examples/test_aclnn_abs.cpp 由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4641 | 2 months ago | |
refactor: 将arch35算子kernel中MicroAPI接口统一迁移为Reg接口 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !4187 merge master into master refactor: 将arch35算子kernel中MicroAPI接口统一迁移为Reg接口 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 math 模块下 80+ 算子的 arch35 kernel 实现从 MicroAPI 接口迁移为 Reg(寄存器)接口,统一编程范式。 ### 改动范围 涉及算子: abs, abs_grad, add_n, adjacent_difference, arg_max_with_value, assign_add, assign_sub, atan2, bitwise_xor, cast, cdist, cdist_grad, ceil, complex_abs, cummin, cumsum, div, dot, exp, eye, floor, floor_div, floor_mod, fused_mul_add_n, grouped_bias_add_grad, inv, is_close, kth_value, lerp, lin_space, log, log1p, logical_or, mod, nan_to_num, neg, pow, power, reciprocal, reduce_all, reduce_any, reduce_log_sum_exp, reduce_nansum, reduce_prod, reduce_var, right_shift, rint, round, rsqrt, rsqrt_grad, sign, signbit, sinh, sort, sort_with_index, tanh, tanh_grad, tensor_equal, top_k_v2, trunc, truncate_div 等 ### 改动方式 - 将 MicroAPI 调用替换为等价 Reg API 调用 - 适配 arch35(ascend950)指令集特性 - 保持算子功能不变 ## 测试 - 涉及算子全量回归测试 ## 类型标签 - [x] 重构 ## 关联的Issue - #2295 See merge request: cann/ops-math!4187 | 3 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
Acos示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4643 merge raii-acos into master Acos示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/acos/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4643 | 2 months 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 | |
fix: Acosh/Asinh 示例 include 路径加 aclnnop/ 前缀,修复默认模式编译找不到头文件 Co-authored-by: cann-robot<cann@cann.team> # message auto-generated for no-merge-commit merge: !4804 merge master into master fix: Acosh/Asinh 示例 include 路径加 aclnnop/ 前缀,修复默认模式编译找不到头文件 Created-by: Coder_Nerd Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复Asinh、Acosh算子example运行失败问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2669 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4804 | 2 months ago | |
[CANNBOT]acosh_grad支持数据类型校验,population_count、scale golden修改 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !4381 merge ticket into master [CANNBOT]acosh_grad支持数据类型校验,population_count、scale golden修改 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> acosh_grad支持数据类型校验,population_count、scale golden修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2478 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4381 | 3 months ago | |
AdaCast: 补充异常值及 Tiling rank>4 校验 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4449 merge master into master AdaCast: 补充异常值及 Tiling rank>4 校验 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次针对新上库算子AdaCast: 补充 GEIR 静态/动态/异常值 example 及 Tiling rank>4 校验 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2516 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4449 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
AddLora示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4645 merge raii-add_lora into master AddLora示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/add_lora/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4645 | 2 months ago | |
批量修改md文档冗余空格第2批 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3314 merge master into master 批量修改md文档冗余空格第2批 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改md中冗余空格 ## 关联的Issue [DOC_1962#冗余空格](https://gitcode.com/cann/ops-math/issues/1962) ## 测试 自验证 ## 文档更新 all md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [X ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3314 | 5 months ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
fix(add_v2): 补充 add_v2_proto.h 算子注册去重宏 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4838 merge master into master fix(add_v2): 补充 add_v2_proto.h 算子注册去重宏 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 math/add_v2/op_graph/add_v2_proto.h 中 REG_OP(AddV2) 注册块此前未包含去重宏。仓库内已有 22 个 *_proto.h 采用 #ifndef OPS_PROTO_DEF_<NAME> 惯例(如 clip_by_norm_no_div_sum_proto.h、matrix_diag_part_proto.h 等),add_v2 属于遗漏项。 当该头文件被同一编译单元重复包含(直接或间接)时,REG_OP(AddV2) 宏展开多次,导致算子重复注册。本 PR 按仓库既有惯例补齐 include guard: c++ #ifndef OPS_PROTO_DEF_ADDV2 #define OPS_PROTO_DEF_ADDV2 REG_OP(AddV2) ... .OP_END_FACTORY_REG(AddV2) #endif ## 关联的Issue fixes #2731 ## 测试 纯头文件宏修改,无逻辑变更;通过编译验证头文件重复包含场景下 REG_OP(AddV2) 仅展开一次。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4838 | 2 months ago | |
docs目录基本概念md文件名改为英文 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !4182 merge master into master docs目录基本概念md文件名改为英文 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2283](https://gitcode.com/cann/ops-math/issues/2283) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4182 | 3 months ago | |
docs目录基本概念md文件名改为英文 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !4182 merge master into master docs目录基本概念md文件名改为英文 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2283](https://gitcode.com/cann/ops-math/issues/2283) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4182 | 3 months ago | |
fix: 修复代码规范问题,统一const修饰与字面量规范化 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4925 merge master into master fix: 修复代码规范问题,统一const修饰与字面量规范化 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 只读参数补充 const 修饰(G.CNS.04-CPP,10 处)** - 涉及文件:reduce_log_sum_exp/op_api/aclnn_logsumexp.cpp(CheckShape/CheckPromoteType/CheckDtypeValid)、reduce_var/op_api/aclnn_var.cpp(CheckShape/CheckDtypeValid)、reduce_var/op_api/aclnn_var_mean.cpp(CheckDtypeValid/CheckShape)、addr/op_api/aclnn_addr.cpp(CheckDtypeValid)、cosh/op_api/aclnn_cosh.cpp(CheckInplaceDtypeValid)。 - 方法:为这些只读校验函数中不修改对象本身的 aclTensor* 输出参数添加 const。均为函数内部 static 校验函数的签名调整,调用方无需任何改动。 **2. 字面量提取为命名常量(G.CNS.02-CPP,1 处)** - cross/op_host/arch35/cross_tiling.cpp:cross 维度大小字面量 3 提取为常量 CROSS_DIM_SIZE,消除难以理解的魔法数字。 **3. 其他规范问题(3 处)** - cross/op_host/arch35/cross_tiling.cpp:删除注释掉的死代码 // coreNum = 1;(G.EXP.43-CPP)。 - reduce_mean_with_count/op_api/reduce_mean_with_count.cpp:axisSet.count(d) 改为 axisSet.count(d) > 0,使 if 条件为显式布尔表达式(G.EXP.36-CPP)。 - asinh/op_api/aclnn_asinh.cpp:删除变量声明与 if 之间的冗余空行(G.FMT.17-CPP)。 **4. 成员变量显式初始化(G.CLS.01-CPP,2 处)** - cross/op_host/arch35/cross_tiling.h、polar/op_host/arch35/polar_tiling.h:未初始化的 compileInfo_ 指针成员显式初始化为 nullptr。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员初始化),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员变量初始化) See merge request: cann/ops-math!4925 | 2 months ago | |
类成员变量初始化 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> # message auto-generated for no-merge-commit merge: !4413 merge master into master 类成员变量初始化 Created-by: hw-zhangpanpan Commit-by: hw-zhangpanpan Merged-by: cann-robot Description: ## 描述 类成员变量需要初始化 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2524 ## 测试 泛化用例,冒烟测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4413 | 3 months ago | |
refactor: arch35算子Reg级API重命名迁移 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !4468 merge work_8 into master refactor: arch35算子Reg级API重命名迁移 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 将 arch35 架构下 40 个算子 kernel 文件中的 Reg 级 API 名称从旧命名迁移到新命名,与已迁移的算子(xlogy、dawsn、rint、cdist、reduce_all、power 等)保持一致。 涉及的 API 重命名映射: - __local_mem__ → __ubuf__(地址空间限定符统一) - Reg::DataCopy (LoadDist) → Reg::LoadAlign(UB 到寄存器的对齐加载) - Reg::DataCopy (StoreDist) → Reg::StoreAlign(寄存器到 UB 的对齐存储) - Reg::DataCopyUnAlignPre → Reg::LoadUnAlignPre - Reg::DataCopyUnAlign → Reg::LoadUnAlign - Reg::MaskPack → Reg::Pack - Reg::MaskUnPack → Reg::UnPack - Reg::MaskAnd → Reg::And(与已有 Reg::And 通过重载统一) - Reg::CompareScalar → Reg::Compares - Reg::UnalignReg → Reg::UnalignRegForLoad 涉及的算子包括:clip_by_value、clip_by_value_v2、adjacent_difference、bitwise_xor、div、floor_div、floor_mod、lerp、logical_or、mod、pow、signbit、tanh_grad。 此外,adjacent_difference 算子中存在原有的 __local_mem__/__ubuf__ 地址空间限定符不一致问题(左侧声明与右侧转换不匹配),本次重命名一并修复。 ### 改动原因 AscendC SDK 更新了 Reg 级 API 命名规范,将原有的 DataCopy 拆分为语义更明确的 LoadAlign/StoreAlign,并移除了 Mask 系列 API 的 "Mask" 前缀(通过重载统一)。本 PR 将相关算子迁移至新命名。 ### 改动方法 纯机械重命名,无逻辑变更。所有改动均为 1:1 的 API 名称替换,增删行数完全对称(+417 -417)。Load/Store 语义区分基于原有模板参数(LoadDist → LoadAlign, StoreDist → StoreAlign)和参数顺序(寄存器在前为 Load,地址在前为 Store)。 ## 关联的Issue - #2529 ## 测试 待补充:二级冒烟测试、算子泛化测试。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 See merge request: cann/ops-math!4468 | 3 months ago | |
AffineGrid示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4647 merge raii-affine_grid into master AffineGrid示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/affine_grid/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2642 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4647 | 2 months ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !4549 merge fix/def-driven-dtype-and-infer-approximateequal into master fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 approximate_equal inv ndtri 算子共性问题修改 ## 关联的issue []https://gitcode.com/cann/ops-math/issues/2660 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-math!4549 | 2 months ago | |
ArgMaxV2示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4648 merge raii-arg_max_v2 into master ArgMaxV2示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/arg_max_v2/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2643 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4648 | 2 months ago | |
ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !4815 merge asc-interface-migration into master ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4815 | 2 months ago | |
ArgMin示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4650 merge raii-arg_min into master ArgMin示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/arg_min/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2645 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4650 | 2 months ago | |
ArgMinWithValue示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4651 merge raii-arg_min_with_value into master ArgMinWithValue示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/arg_min_with_value/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2646 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4651 | 2 months ago | |
feat: Acosh/Asin 使能 AICPU 常量折叠 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4601 merge feat/enable-aicpu-constant-folding-acosh-asin into master feat: Acosh/Asin 使能 AICPU 常量折叠 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 Acosh / Asin 的 opInfo.opsFlag 在 canndev(aicpu_kernel.ini:43 / :251)与 ops-math 侧 *_aicpu_def.cpp 中均已是 OPS_FLAG_OPEN,但两个算子都没有编进 host 侧 libopconstant_folding_math.so——属于「**标志已开、实际不折叠**」的空开状态。 常量折叠生效需要两个条件同时满足:① opsFlag = OPEN;② kernel 编进折叠 so。本 PR 补上条件 ②。 **改动内容** | 文件 | 说明 | |---|---| | math/{acosh,asin}/CMakeLists.txt | add_all_modules_sources(...) 末尾追加 HOSTCPU TRUE | | math/{acosh,asin}/op_kernel_aicpu/*_aicpu.cpp | 增 #include "aicpu/math_aicpu_register.h";注册宏 REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | math/{acosh,asin}/examples/test_geir_*_const_folding.cpp | 新增 Const → Op → Output 图,写法对齐 #2551 的 test_geir_ceil_const_folding.cpp | | math/{acosh,atanh}/op_kernel_aicpu/CMakeLists.txt | 删除。全仓无 add_subdirectory(.../op_kernel_aicpu),其内容已被 cmake/func.cmake 的 glob 覆盖,属死文件 | opsFlag 未改动(本就是 OPEN)。device-only 依赖体检干净(无 ascend_hal / halSdma / __aarch64__ / asm volatile),无需条件编译隔离。 > **关于 diff 体积**:*_aicpu.cpp 的大段变更是 clang-format 对旧格式文件的整份重排,**语义改动只有上述 2 行**。已用「去空白后逐行比对」确认其余差异全是大括号换行与参数折行,无夹带。与 #2551 中 concat_v2 / strided_slice 等文件情况相同。 ## 关联的Issue #2601 ## 测试 1. **全量构建(必须不带 --ops=)**:bash build.sh --pkg -j16,0 错误。 带 --ops= 会设 ENABLE_CUSTOM=TRUE,使 NOT ENABLE_CUSTOM 不成立、折叠 so 根本不产出,那样的「验证通过」是假绿。 2. **CMake 配置期**:新增 acosh_host_const_obj、asin_host_const_obj 两个目标(连同存量共 10 个)。 3. **so 内容三向对照**(libopconstant_folding_math.so,8146408 字节): - 正向:acosh_aicpu.cpp / asin_aicpu.cpp 源文件名与 Acosh / Asin 类型字符串均命中 - 存量:Conj / Tile / Zeta / TransData / TopKPQDistanceV2 等仍命中,未打破存量 - 反向:8 个 opsFlag=CLOSE 的算子(Asinh、Atanh、TanhGrad、Exp、MatrixDiagV3、MatrixDiagPartV3、ConjugateTranspose、ProdEnvMatACalcRij)全部缺失 - 其中 **Asin 命中而 Asinh 缺失**,排除 strings 子串碰巧匹配 4. **so 进 run 包**:--list 可见于 opp/built-in/op_impl/host_cpu/,与构建产物 md5 一致(7f06b290...)。 5. **V2 注册路径**:新增 .o 中含 weak 符号 aicpu::RegistCpuKernelV2 与 Creator_kAcosh_Kernel / Creator_kAsin_Kernel。 6. **device 侧零回归**:宏在未定义 OPS_MATH_AICPU_HOST_KERNEL 时展开为原 REGISTER_CPU_KERNEL(kAcosh, AcoshCpuKernel),与改动前源码行逐字相同(预处理探针实测)。 7. **AICPU UT:13/13 PASS**(bash build.sh -u --opkernel_aicpu --ops=acosh,asin)。 8. **端到端**:安装 run 包后跑新增的两个 example,折叠日志 Constant folding computation for node acosh_const_folding (type: Acosh) finished, return code: 0.(Asin 同),数值正确;Registered V2 ops from so[libopconstant_folding_math.so] 由 **1 增至 9**。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4601 | 2 months 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 | |
fix: 修复代码规范问题,统一const修饰与字面量规范化 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4925 merge master into master fix: 修复代码规范问题,统一const修饰与字面量规范化 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 只读参数补充 const 修饰(G.CNS.04-CPP,10 处)** - 涉及文件:reduce_log_sum_exp/op_api/aclnn_logsumexp.cpp(CheckShape/CheckPromoteType/CheckDtypeValid)、reduce_var/op_api/aclnn_var.cpp(CheckShape/CheckDtypeValid)、reduce_var/op_api/aclnn_var_mean.cpp(CheckDtypeValid/CheckShape)、addr/op_api/aclnn_addr.cpp(CheckDtypeValid)、cosh/op_api/aclnn_cosh.cpp(CheckInplaceDtypeValid)。 - 方法:为这些只读校验函数中不修改对象本身的 aclTensor* 输出参数添加 const。均为函数内部 static 校验函数的签名调整,调用方无需任何改动。 **2. 字面量提取为命名常量(G.CNS.02-CPP,1 处)** - cross/op_host/arch35/cross_tiling.cpp:cross 维度大小字面量 3 提取为常量 CROSS_DIM_SIZE,消除难以理解的魔法数字。 **3. 其他规范问题(3 处)** - cross/op_host/arch35/cross_tiling.cpp:删除注释掉的死代码 // coreNum = 1;(G.EXP.43-CPP)。 - reduce_mean_with_count/op_api/reduce_mean_with_count.cpp:axisSet.count(d) 改为 axisSet.count(d) > 0,使 if 条件为显式布尔表达式(G.EXP.36-CPP)。 - asinh/op_api/aclnn_asinh.cpp:删除变量声明与 if 之间的冗余空行(G.FMT.17-CPP)。 **4. 成员变量显式初始化(G.CLS.01-CPP,2 处)** - cross/op_host/arch35/cross_tiling.h、polar/op_host/arch35/polar_tiling.h:未初始化的 compileInfo_ 指针成员显式初始化为 nullptr。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员初始化),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员变量初始化) See merge request: cann/ops-math!4925 | 2 months 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 | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
Atan示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4654 merge raii-atan into master Atan示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/atan/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2649 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4654 | 2 months ago | |
fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4927 merge master into master fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 消除 reinterpret_cast(G.EXP.15-CPP,4 处)** - 涉及文件:atan2、cdist_grad、complex、log_add_exp 的 op_host/arch35 tiling 文件。 - 方法:将 reinterpret_cast<const T*>(context->GetCompileInfo()) 替换为框架提供的模板接口 context->GetCompileInfo<T>()(与仓库内 assign_add、floor、round 等文件既有写法一致),类型安全且语义等价。 **2. 消除 const_cast(G.EXP.16-CPP,5 处)** - 涉及文件:mul/op_api/mul.cpp、pow/op_api/aclnn_pow.cpp。 - 方法: - mul.cpp:将文件内 static 辅助函数 MulAiCpu 的输出参数改为 const aclTensor*(仓库内 AbsAiCpu 等已有相同先例),MulInplace 直接复用原 const 输入 rfRes,消除 const_cast。 - aclnn_pow.cpp:powOut 改为 const aclTensor*,Pows/Square/Pow/selfCast 分支直接赋值,去掉 4 处 const_cast<aclTensor*>。 - 均未修改任何公开函数签名。 **3. 统一操作数基本类型(G.EXP.27-CPP,2 处)** - pow/op_api/aclnn_pow.cpp: - CheckSupportPows 中的 6 处 exponent->ToFloat() != 常量 比较统一补充 static_cast<float>,与文件内既有写法(canUseSquare、canNoUseOp)保持一致。 - == 1.0 改为 == 1.0f,避免 double 字面量与 float 操作数比较。 - 注:canNoUseOp(L452)当前已带 static_cast<float> 且 NOOP_EXP 为 float 常量,判定为已符合规范,未改动。 **4. 控制表达式布尔化(G.EXP.36-CPP,1 处)** - logical_or/op_api/aclnn_logical_or.cpp:KERNEL_SUPPORTED_DTYPE_SET.count(selfDtype) 改为 count(selfDtype) > 0,使 if 条件为显式布尔表达式。 **5. 函数声明/定义参数名一致(G.FUN.02-CPP,2 处)** - pdist/op_api/pdist.cpp:定义参数 self 更名为 input,与头文件声明一致。 - logspace/op_api/aclnn_logspace.cpp:定义去掉 stream 的 const 修饰,与头文件声明一致。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(类型安全转换、const 修饰、类型统一、布尔表达式显式化、参数重命名),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(消除 reinterpret_cast/const_cast、统一类型操作数、布尔表达式显式化、参数名一致性) See merge request: cann/ops-math!4927 | 2 months ago | |
fix(atan_grad): 迁移 def 驱动 dtype 模式, 新增 InferDataType, 规范化 InferShape Co-authored-by: zhangweiwei11<3104154550@qq.com> # message auto-generated for no-merge-commit merge: !4777 merge feat/atan_grad-def-dtype-infer-shape-dtype into master fix(atan_grad): 迁移 def 驱动 dtype 模式, 新增 InferDataType, 规范化 InferShape Created-by: zhangweiwei11 Commit-by: zhangweiwei11 Merged-by: cann-robot Description: ## 整改内容 针对 issue #2625 ,对 AtanGrad 算子进行 def 驱动 dtype 整改。 ### 变更说明 1. **新增 InferDataType 实现** (op_graph/atan_grad_graph_infer.cpp) - 输出 z 的 dtype = 输入 y 的 dtype(复用 canndev 仓 runtime2.0 通用模式) 2. **迁移 dtype 驱动方式为 def 文件驱动** - TilingKey 移除 D_T_X dtype 维度,仅保留 BUFFER_MODE - Kernel 模板参数移除 D_T_X,改用 def 注入的 DTYPE_Y 宏 - 模板组合从 6 个(3 dtype x 2 buffer)简化为 2 个(每种 dtype 各 2 份,由 def 驱动展开) - Tiling 函数 ASCENDC_TPL_SEL_PARAM 移除 dTypeX 参数 3. **规范化 InferShape** (tan_grad_infershape.cpp) - 精简注释,分离 nullptr 检查逻辑,提升可读性 ### 影响范围 仅涉及 math/atan_grad/ 目录下文件,不影响其他算子。 关联 issue: #2625 See merge request: cann/ops-math!4777 | 2 months ago | |
fix/atanh-near-zero-precision Co-authored-by: leaving__<B24040621@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !4482 merge master into master fix/atanh-near-zero-precision Created-by: leaving__ Commit-by: leaving__ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复内容 Atanh 算子在输入值接近零时存在浮点精度损失问题。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2662 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4482 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
feat: add dtype and dim check Co-authored-by: Miao_Haifeng<miaohaifeng@huawei.com> # message auto-generated for no-merge-commit merge: !4407 merge mhf_for_dts into master feat: add dtype and dim check Created-by: Almost_CANN Commit-by: Miao_Haifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> dawsn、spence、besseli0e算子增加dtype和dim校验 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> TTK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4407 | 3 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
## 描述 新增 Bias 算子(Ascend950/arch35)的三段式 SIMD 实现。Bias 算子按照 axis、num_axes 和 bias_from_blob 属性推导 bias 的逻辑广播形状,计算 y = x + broadcast(bias)。对标 canndev 内置同名 Bias 算子,本次在 ops-math 目标仓新增 A5 路径,不修改 A2 既有实现。 主要改动: - 新增 math/bias/ 算子目录,包含 arch35 RegBase kernel(手写 CopyIn/Compute/CopyOut 三段式)、Broadcast tiling、OpDef/InferShape/InferDataType、binary config、GEIR example、TTK manifest、golden、UT - fp16/bf16 走 Cast→FP32 Add→Cast 回输出 dtype 路径,fp32 走直接 Add 路径 - 支持 dtype:float16/float32/bfloat16(同 dtype),format:ND,rank 1~8 - 支持 attrs:axis(含负值归一化)、num_axes(-1/0/正整数)、bias_from_blob(true/false) - docs/zh/op_list.md 新增 Bias 条目 ## 关联的Issue 无 ## 测试 - 编译打包通过 - CI pre-commit 全部通过(clang-format/ruff-check/ruff-format/codespell/OAT/trailing-whitespace 等) - 泛化测试:828/828 PASS(3 dtype × 9 attr 组合 × 1D-8D shape × 空 tensor × 尾块/边界,--binary=release) - GEIR 通路:50/50 PASS(3 dtype × 1D-3D+5D,含三方精度 cross_check + 三方性能 xpu_device_us 实测) - 三方精度:15/15 PASS(NPU vs CPU golden vs A100 GPU,三个比较方向均 PASS) - 性能对标:75/75 PASS(NPU 全面优于 A100 2.1x~12x,folded G/N ≥ 0.5) - 特殊值:3/3 PASS(fp16/bf16/fp32 的 -inf/+inf/nan/-0.0 传播) - UT:12/12 PASS(tiling 9 + infershape 3) ## 文档更新 - 新增 math/bias/README.md(产品支持情况、功能说明、参数说明、约束说明、调用说明、参考资源) - 更新 docs/zh/op_list.md(新增 Bias 条目) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !4836 merge feat/bias into master feat: Bias 算子下一代实现(无 aclnn 接口) Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 新增 Bias 算子(Ascend950/arch35)的三段式 SIMD 实现。Bias 算子按照 axis、num_axes 和 bias_from_blob 属性推导 bias 的逻辑广播形状,计算 y = x + broadcast(bias)。对标 canndev 内置同名 Bias 算子,本次在 ops-math 目标仓新增 A5 路径,不修改 A2 既有实现。 主要改动: - 新增 math/bias/ 算子目录,包含 arch35 RegBase kernel(手写 CopyIn/Compute/CopyOut 三段式)、Broadcast tiling、OpDef/InferShape/InferDataType、binary config、GEIR example、TTK manifest、golden、UT - fp16/bf16 走 Cast→FP32 Add→Cast 回输出 dtype 路径,fp32 走直接 Add 路径 - 支持 dtype:float16/float32/bfloat16(同 dtype),format:ND,NC1HWC0 - 支持 attrs:axis(含负值归一化)、num_axes(-1/0/正整数)、bias_from_blob(true/false) - docs/zh/op_list.md 新增 Bias 条目 ## 关联的Issue [[Requirement|需求建议]: 新增支持Bias算子](https://gitcode.com/cann/ops-math/issues/2729) ## 测试 - 编译打包通过 - CI pre-commit 全部通过(clang-format/ruff-check/ruff-format/codespell/OAT/trailing-whitespace 等) - release 泛化:828/828 PASS。 - UT:12/12 PASS(tiling 9 + infershape 3)。 - 三方精度:16/16 PASS。 - DFX:15/15 PASS(空 tensor/inf-nan/nonalign/large/negaxis/blobfalse/numneg1)。 - 性能:21/21 PASS(mean G/N=2.249,20/21 NPU 快于 GPU)。 - GEIR:50/50 PASS(含三方精度+三方性能,xpu_device_us 实测)。 ## 文档更新 - 新增 math/bias/README.md(产品支持情况、功能说明、参数说明、约束说明、调用说明、参考资源) - 更新 docs/zh/op_list.md(新增 Bias 条目) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4836 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
规范化修改产品术语名 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !4493 merge master into master 规范化修改产品术语名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 规范化修改产品术语名 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2283](https://gitcode.com/cann/ops-math/issues/2283) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> readme和aclnn API MD ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4493 | 3 months ago | |
Bincount示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4657 merge raii-bincount into master Bincount示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/bincount/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2654 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4657 | 2 months ago | |
BitwiseAnd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4658 merge raii-bitwise_and into master BitwiseAnd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/bitwise_and/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2655 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4658 | 2 months ago | |
BitwiseNot示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4659 merge raii-bitwise_not into master BitwiseNot示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/bitwise_not/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2656 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4659 | 2 months ago | |
BitwiseOr示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4660 merge raii-bitwise_or into master BitwiseOr示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/bitwise_or/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2657 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4660 | 2 months ago | |
BitwiseXor示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4661 merge raii-bitwise_xor into master BitwiseXor示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/bitwise_xor/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2658 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4661 | 2 months ago | |
补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4821 merge dev into master 补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 包含两部分改动: ### 1. 补充 4 个算子 rt2 infershape 实现 从 canndev 仓迁移 infershape 逻辑到 ops-math,包含 InferShape + InferDataType + InferShapeRange: - **coordinates_1d_to_2d**:rt1 改造为 rt2,3 个输出(row/col/n)的 shape+dtype+range 均来自输入 x - **split_d**:rt2 直接迁移,DYNAMIC_OUTPUT 按 split_dim/num_split 属性计算 shape+range - **slice_write**:rt1 改造为 rt2,输出 shape+dtype+range 来自输入 x,含 x/value dtype 一致性校验 - **calc_buckets_limit_and_offset**:rt1 改造为 rt2,2 个输出 shape+dtype 来自 bucket_list/ivf_offset - 同步迁移 UT 用例(共 8 个),改造为 InfershapeContextPara + ExecuteTestCase 格式 ### 2. 9 个算子常量折叠 HOSTCPU 改造 - CMakeLists.txt 加 HOSTCPU TRUE 参数 - 算子注册宏从 REGISTER_CPU_KERNEL 改为 OPS_MATH_REGISTER_CPU_KERNELV2 - 改造算子:calc_buckets_limit_and_offset、cast、coordinates_1d_to_2d、cumsum、lin_space、slice_write、split_v、topk、tile_with_axis - 编译产出 libopconstant_folding_math.so,strings 验证全部算子符号存在 ## 关联的Issue #2717 ## 测试 ### infershape UT 验证 - 执行 bash build.sh -u --ophost --soc=ascend910b --ops=<op_name> -j16 - 验证条件:exit code == 0 且日志含 [ PASSED ] N tests. - 8 个 UT 用例全部通过(含 dtype 不一致失败用例) ### 常量折叠编译验证 - 执行 bash build.sh --pkg --jit -j16 - 验证 libopconstant_folding_math.so 产出 - strings 验证 9 个算子符号均在 so 中 - RunCpuKernelV2 / GetCpuKernelV2 入口符号存在 ### 文档更新验证 - op_list.md 中 4 个算子 op_host 列 ×→√ - 2 个算子 op_kernel 列 ×→√(coordinates_1d_to_2d、slice_write) ## 文档更新 - docs/zh/op_list.md:更新 coordinates_1d_to_2d、split_d、slice_write、calc_buckets_limit_and_offset 的 op_host/op_kernel 标记 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4821 | 2 months ago | |
ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !4815 merge asc-interface-migration into master ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4815 | 2 months ago | |
fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4927 merge master into master fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 消除 reinterpret_cast(G.EXP.15-CPP,4 处)** - 涉及文件:atan2、cdist_grad、complex、log_add_exp 的 op_host/arch35 tiling 文件。 - 方法:将 reinterpret_cast<const T*>(context->GetCompileInfo()) 替换为框架提供的模板接口 context->GetCompileInfo<T>()(与仓库内 assign_add、floor、round 等文件既有写法一致),类型安全且语义等价。 **2. 消除 const_cast(G.EXP.16-CPP,5 处)** - 涉及文件:mul/op_api/mul.cpp、pow/op_api/aclnn_pow.cpp。 - 方法: - mul.cpp:将文件内 static 辅助函数 MulAiCpu 的输出参数改为 const aclTensor*(仓库内 AbsAiCpu 等已有相同先例),MulInplace 直接复用原 const 输入 rfRes,消除 const_cast。 - aclnn_pow.cpp:powOut 改为 const aclTensor*,Pows/Square/Pow/selfCast 分支直接赋值,去掉 4 处 const_cast<aclTensor*>。 - 均未修改任何公开函数签名。 **3. 统一操作数基本类型(G.EXP.27-CPP,2 处)** - pow/op_api/aclnn_pow.cpp: - CheckSupportPows 中的 6 处 exponent->ToFloat() != 常量 比较统一补充 static_cast<float>,与文件内既有写法(canUseSquare、canNoUseOp)保持一致。 - == 1.0 改为 == 1.0f,避免 double 字面量与 float 操作数比较。 - 注:canNoUseOp(L452)当前已带 static_cast<float> 且 NOOP_EXP 为 float 常量,判定为已符合规范,未改动。 **4. 控制表达式布尔化(G.EXP.36-CPP,1 处)** - logical_or/op_api/aclnn_logical_or.cpp:KERNEL_SUPPORTED_DTYPE_SET.count(selfDtype) 改为 count(selfDtype) > 0,使 if 条件为显式布尔表达式。 **5. 函数声明/定义参数名一致(G.FUN.02-CPP,2 处)** - pdist/op_api/pdist.cpp:定义参数 self 更名为 input,与头文件声明一致。 - logspace/op_api/aclnn_logspace.cpp:定义去掉 stream 的 const 修饰,与头文件声明一致。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(类型安全转换、const 修饰、类型统一、布尔表达式显式化、参数重命名),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(消除 reinterpret_cast/const_cast、统一类型操作数、布尔表达式显式化、参数名一致性) See merge request: cann/ops-math!4927 | 2 months ago | |
Ceil示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4665 merge raii-ceil into master Ceil示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/ceil/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example ceil eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(输入 [0, 1.1, 2.2, …, 7.7] 的 ceil 结果 [0, 2, 3, 4, 5, 6, 7, 8] 全部正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4665 | 2 months ago | |
Cholesky示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4666 merge raii-cholesky into master Cholesky示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/cholesky/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 -Start to run examples, name:cholesky mode:eager Start compile and run examples file: ../math/cholesky/examples/test_aclnn_linalg_cholesky.cpp pkg_mode:cust vendor_name:cholesky result[0] is: 2.449490 result[1] is: 0.000000 result[2] is: 0.000000 result[3] is: -1.224745 result[4] is: 0.707107 result[5] is: 0.000000 result[6] is: 0.408248 result[7] is: 0.707107 result[8] is: 1.825742 run test_aclnn_cholesky, execute samples success ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4666 | 2 months ago | |
fix: 修复topk/calc_buckets_limit_and_offset/compare_and_bit_pack算子UT问题 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4173 merge fix/ut-issues into master fix: 修复topk/calc_buckets_limit_and_offset/compare_and_bit_pack算子UT问题 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 修复 topk、calc_buckets_limit_and_offset、compare_and_bit_pack 三个算子的 UT 问题及内核参数校验缺失。 **calc_buckets_limit_and_offset 算子:** - 内核代码新增 total_limit >= 0 参数校验和 bucket_list[i] >= 0 输入范围检查 - 修复 UT 中 input2_num 赋值 typo(input1->NumElements() → input2->NumElements()) **compare_and_bit_pack 算子:** - COMPLEX64 用例重命名为 INPUT_COMPLEX64_UNSUPPORTED,移除无效输出验证 - BOOL 用例修正 input1 值(true → false)及期望结果 - DIM_ERROR 用例修正 shape 和输入数据指针 **topk 算子:** - 重写 SMALLEST_LAST_DIM 测试:修正输出维度、使用随机值填充、按行排序取 top-2、添加完整结果校验 ## 关联的Issue #2285 ## 测试 1. **单元测试验证** - 执行 calc_buckets_limit_and_offset 算子 UT,验证参数校验和范围检查生效 - 执行 compare_and_bit_pack 算子 UT,验证 COMPLEX64/BOOL/DIM_ERROR 用例通过 - 执行 topk 算子 UT,验证 SMALLEST_LAST_DIM 用例排序结果正确 2. **回归测试** - 确保修改不影响其他已有 UT 用例的通过 ## 文档更新 无文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4173 | 3 months ago | |
fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4927 merge master into master fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 消除 reinterpret_cast(G.EXP.15-CPP,4 处)** - 涉及文件:atan2、cdist_grad、complex、log_add_exp 的 op_host/arch35 tiling 文件。 - 方法:将 reinterpret_cast<const T*>(context->GetCompileInfo()) 替换为框架提供的模板接口 context->GetCompileInfo<T>()(与仓库内 assign_add、floor、round 等文件既有写法一致),类型安全且语义等价。 **2. 消除 const_cast(G.EXP.16-CPP,5 处)** - 涉及文件:mul/op_api/mul.cpp、pow/op_api/aclnn_pow.cpp。 - 方法: - mul.cpp:将文件内 static 辅助函数 MulAiCpu 的输出参数改为 const aclTensor*(仓库内 AbsAiCpu 等已有相同先例),MulInplace 直接复用原 const 输入 rfRes,消除 const_cast。 - aclnn_pow.cpp:powOut 改为 const aclTensor*,Pows/Square/Pow/selfCast 分支直接赋值,去掉 4 处 const_cast<aclTensor*>。 - 均未修改任何公开函数签名。 **3. 统一操作数基本类型(G.EXP.27-CPP,2 处)** - pow/op_api/aclnn_pow.cpp: - CheckSupportPows 中的 6 处 exponent->ToFloat() != 常量 比较统一补充 static_cast<float>,与文件内既有写法(canUseSquare、canNoUseOp)保持一致。 - == 1.0 改为 == 1.0f,避免 double 字面量与 float 操作数比较。 - 注:canNoUseOp(L452)当前已带 static_cast<float> 且 NOOP_EXP 为 float 常量,判定为已符合规范,未改动。 **4. 控制表达式布尔化(G.EXP.36-CPP,1 处)** - logical_or/op_api/aclnn_logical_or.cpp:KERNEL_SUPPORTED_DTYPE_SET.count(selfDtype) 改为 count(selfDtype) > 0,使 if 条件为显式布尔表达式。 **5. 函数声明/定义参数名一致(G.FUN.02-CPP,2 处)** - pdist/op_api/pdist.cpp:定义参数 self 更名为 input,与头文件声明一致。 - logspace/op_api/aclnn_logspace.cpp:定义去掉 stream 的 const 修饰,与头文件声明一致。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(类型安全转换、const 修饰、类型统一、布尔表达式显式化、参数重命名),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(消除 reinterpret_cast/const_cast、统一类型操作数、布尔表达式显式化、参数名一致性) See merge request: cann/ops-math!4927 | 2 months ago | |
nn仓完善complex_abs的infershape推导 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !4840 merge master into master nn仓完善complex_abs的infershape推导 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 nn仓完善complex_abs的infershape推导 ## 关联的Issue 关联Issue[#2747](https://gitcode.com/cann/ops-nn/issues/2747) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4840 | 2 months ago | |
Conj/InplaceTopKDistance/TopKPQDistanceV2 使能 AICPU 常量折叠 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4305 merge feat/enable-aicpu-constant-folding-conj-topk into master Conj/InplaceTopKDistance/TopKPQDistanceV2 使能 AICPU 常量折叠 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 Conj、InplaceTopKDistance、TopKPQDistanceV2 三个 AICPU 算子的 opInfo.opsFlag 已置为 OPS_FLAG_OPEN,但 kernel 实现并未编入 libopconstant_folding_math.so,折叠标志位处于「空开」状态——GE 图编译期即使命中常量输入,也找不到可在编译机上执行的 host 侧 kernel。 AICPU 算子参与常量折叠需同时满足两个条件:opsFlag 为 OPS_FLAG_OPEN(已满足),以及 kernel 以 host 版本编入 libopconstant_folding_math.so 并安装到 opp/built-in/op_impl/host_cpu/(本次补齐)。 改动共 6 个文件、9 增 6 删,沿用 math/tile 已验证的路径,未新增任何公共基础设施: **1)CMakeLists 追加 HOSTCPU TRUE** cmake -add_all_modules_sources(OPTYPE conj ACLNNTYPE aclnn_exclude) +add_all_modules_sources(OPTYPE conj ACLNNTYPE aclnn_exclude HOSTCPU TRUE) 该参数经 cmake/func.cmake 的 add_all_modules_sources 解析后,创建 OBJECT 目标 <op>_host_const_obj(编译期定义 OPS_MATH_AICPU_HOST_KERNEL),登记进 cache 变量 AICPU_HOST_OBJ_TARGETS;cmake/symbol.cmake 的 gen_aicpu_const_symbol() 汇总链接出 so 并 install 到 AICPU_HOST_KERNEL_IMPL。 **2)kernel 注册宏改用 OPS_MATH_REGISTER_CPU_KERNELV2** cpp +#include "aicpu/math_aicpu_register.h" -REGISTER_CPU_KERNEL(kConj, Conj); +OPS_MATH_REGISTER_CPU_KERNELV2(kConj, Conj); 与 math/tile 现状对齐。该宏为条件包装:未定义 OPS_MATH_AICPU_HOST_KERNEL 时(device 侧 aicpu so、cust 包、UT)展开为原 REGISTER_CPU_KERNEL;定义时以 weak 符号探测 RegistCpuKernelV2,存在则注册 V2、缺失则回退 V1,兼容旧版 libaicpu_context_host.a。 **未改动项**:*_aicpu_def.cpp 无需变更(opsFlag 本就是 OPS_FLAG_OPEN);三个算子的 kernel 均未依赖 driver/ascend_hal.h 等 device-only 接口,无需像 Tile 那样为 halSdmaCopy 增加条件隔离;三个算子无 tiling 文件,无需 DISABLE_IN_OPP 参数。 ## 关联的Issue #2414 ## 测试 **1. device 侧零回归验证** 将改动前的 conj_aicpu.cpp 单独预处理,与改动后 device 模式(不定义 OPS_MATH_AICPU_HOST_KERNEL)输出对比注册语句,**逐字节完全一致**: cpp std::shared_ptr<CpuKernel> Creator_kConj_Kernel() { ... } bool g_kConj_Kernel_Creator __attribute__((unused)) = RegistCpuKernel(kConj, Creator_kConj_Kernel); 整份预处理输出的差异仅为新增的 RegistCpuKernelV2 weak 声明,及 __LINE__ 因新增 include 的整体偏移。 **2. 编译构建测试** bash build.sh --pkg -j16 全量构建通过,EXIT=0,构建错误数 0。CMake 配置期确认三个新 OBJECT 目标建立: -- add_aicpu_host_kernel_modules for conj_host_const_obj -- add_aicpu_host_kernel_modules for inplace_top_k_distance_host_const_obj -- add_aicpu_host_kernel_modules for top_k_pq_distance_v2_host_const_obj 构建期确认链接成功:Linking libopconstant_folding_math.so using host compiler okay. **3. so 内容核对(正反对照)** | 算子 | HOSTCPU | so 中 | |---|---|---| | Conj / InplaceTopKDistance / TopKPQDistanceV2 | 本次新开 | 命中 | | Tile / TransData | 原有 | 命中 | | AbsGrad / BesselI0e / Bincount / AdjacentDifference | 未开 | 缺失(预期) | 反向对照用于排除字符串偶然匹配。另确认三个新 .o 各含 1 个 Creator_*_Kernel 符号且均引用 RegistCpuKernelV2。 **4. 打包验证** so 已进 run 包,路径与 AICPU_HOST_KERNEL_IMPL 一致: $ ./cann-910b-ops-math_9.1.0_linux-aarch64.run --list | grep opconstant -r--r----- 1000/1000 8015336 ./opp/built-in/op_impl/host_cpu/libopconstant_folding_math.so 解包后与构建产物 md5 一致(b9f723f0fc67519aff285e8ab535c314),并对解包实物重跑了上述正反对照,结果相同。 **5. AICPU UT 回归** bash build.sh -u --opkernel_aicpu --ops=conj,inplace_top_k_distance,top_k_pq_distance_v2 -j16 [==========] Running 26 tests from 3 test suites. TEST_CONJ_UT 6 tests TEST_INPLACE_TOP_K_DISTANCE_UT 8 tests TEST_TOP_K_PQ_DISTANCE_V2_UT 12 tests [ PASSED ] 26 tests. ## 文档更新 无。本改动不涉及对外接口与文档。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4305 | 3 months ago | |
Cos示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4668 merge raii-cos into master Cos示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/cos/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example cos eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(输入 [0.1, 0.2, …, 0.8] 的 cos 结果 0.995004、0.980067、…、0.696707 与数学期望一致),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4668 | 2 months ago | |
fix: 修复代码规范问题,统一const修饰与字面量规范化 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4925 merge master into master fix: 修复代码规范问题,统一const修饰与字面量规范化 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 只读参数补充 const 修饰(G.CNS.04-CPP,10 处)** - 涉及文件:reduce_log_sum_exp/op_api/aclnn_logsumexp.cpp(CheckShape/CheckPromoteType/CheckDtypeValid)、reduce_var/op_api/aclnn_var.cpp(CheckShape/CheckDtypeValid)、reduce_var/op_api/aclnn_var_mean.cpp(CheckDtypeValid/CheckShape)、addr/op_api/aclnn_addr.cpp(CheckDtypeValid)、cosh/op_api/aclnn_cosh.cpp(CheckInplaceDtypeValid)。 - 方法:为这些只读校验函数中不修改对象本身的 aclTensor* 输出参数添加 const。均为函数内部 static 校验函数的签名调整,调用方无需任何改动。 **2. 字面量提取为命名常量(G.CNS.02-CPP,1 处)** - cross/op_host/arch35/cross_tiling.cpp:cross 维度大小字面量 3 提取为常量 CROSS_DIM_SIZE,消除难以理解的魔法数字。 **3. 其他规范问题(3 处)** - cross/op_host/arch35/cross_tiling.cpp:删除注释掉的死代码 // coreNum = 1;(G.EXP.43-CPP)。 - reduce_mean_with_count/op_api/reduce_mean_with_count.cpp:axisSet.count(d) 改为 axisSet.count(d) > 0,使 if 条件为显式布尔表达式(G.EXP.36-CPP)。 - asinh/op_api/aclnn_asinh.cpp:删除变量声明与 if 之间的冗余空行(G.FMT.17-CPP)。 **4. 成员变量显式初始化(G.CLS.01-CPP,2 处)** - cross/op_host/arch35/cross_tiling.h、polar/op_host/arch35/polar_tiling.h:未初始化的 compileInfo_ 指针成员显式初始化为 nullptr。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员初始化),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员变量初始化) See merge request: cann/ops-math!4925 | 2 months ago | |
修复CosineSimilarity资料约束 Co-authored-by: SGQT<shangguanqinnan@huawei.com> # message auto-generated for no-merge-commit merge: !4826 merge fix_cosinesimilarity_readme into master 修复CosineSimilarity资料约束 Created-by: u010470851 Commit-by: SGQT Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复CosineSimilarity资料约束 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联的Issue https://gitcode.com/cann/ops-math/issues/2720 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4826 | 2 months ago | |
fix: 修复代码规范问题,统一const修饰与字面量规范化 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4925 merge master into master fix: 修复代码规范问题,统一const修饰与字面量规范化 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 只读参数补充 const 修饰(G.CNS.04-CPP,10 处)** - 涉及文件:reduce_log_sum_exp/op_api/aclnn_logsumexp.cpp(CheckShape/CheckPromoteType/CheckDtypeValid)、reduce_var/op_api/aclnn_var.cpp(CheckShape/CheckDtypeValid)、reduce_var/op_api/aclnn_var_mean.cpp(CheckDtypeValid/CheckShape)、addr/op_api/aclnn_addr.cpp(CheckDtypeValid)、cosh/op_api/aclnn_cosh.cpp(CheckInplaceDtypeValid)。 - 方法:为这些只读校验函数中不修改对象本身的 aclTensor* 输出参数添加 const。均为函数内部 static 校验函数的签名调整,调用方无需任何改动。 **2. 字面量提取为命名常量(G.CNS.02-CPP,1 处)** - cross/op_host/arch35/cross_tiling.cpp:cross 维度大小字面量 3 提取为常量 CROSS_DIM_SIZE,消除难以理解的魔法数字。 **3. 其他规范问题(3 处)** - cross/op_host/arch35/cross_tiling.cpp:删除注释掉的死代码 // coreNum = 1;(G.EXP.43-CPP)。 - reduce_mean_with_count/op_api/reduce_mean_with_count.cpp:axisSet.count(d) 改为 axisSet.count(d) > 0,使 if 条件为显式布尔表达式(G.EXP.36-CPP)。 - asinh/op_api/aclnn_asinh.cpp:删除变量声明与 if 之间的冗余空行(G.FMT.17-CPP)。 **4. 成员变量显式初始化(G.CLS.01-CPP,2 处)** - cross/op_host/arch35/cross_tiling.h、polar/op_host/arch35/polar_tiling.h:未初始化的 compileInfo_ 指针成员显式初始化为 nullptr。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员初始化),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员变量初始化) See merge request: cann/ops-math!4925 | 2 months ago | |
Cummax示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4671 merge raii-cummax into master Cummax示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/cummax/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example cummax eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(2×4 输入 dim=0 的累积最大值 [3,3,2,1]、[4,3,6,7] 及对应索引 [0,0,0,0]、[1,0,1,1] 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4671 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
fix aclnncumprod nullptr issue Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4401 merge master_bak into master fix aclnncumprod nullptr issue Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix aclnncumprod nullptr issue ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2483 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4401 | 3 months ago | |
补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4821 merge dev into master 补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 包含两部分改动: ### 1. 补充 4 个算子 rt2 infershape 实现 从 canndev 仓迁移 infershape 逻辑到 ops-math,包含 InferShape + InferDataType + InferShapeRange: - **coordinates_1d_to_2d**:rt1 改造为 rt2,3 个输出(row/col/n)的 shape+dtype+range 均来自输入 x - **split_d**:rt2 直接迁移,DYNAMIC_OUTPUT 按 split_dim/num_split 属性计算 shape+range - **slice_write**:rt1 改造为 rt2,输出 shape+dtype+range 来自输入 x,含 x/value dtype 一致性校验 - **calc_buckets_limit_and_offset**:rt1 改造为 rt2,2 个输出 shape+dtype 来自 bucket_list/ivf_offset - 同步迁移 UT 用例(共 8 个),改造为 InfershapeContextPara + ExecuteTestCase 格式 ### 2. 9 个算子常量折叠 HOSTCPU 改造 - CMakeLists.txt 加 HOSTCPU TRUE 参数 - 算子注册宏从 REGISTER_CPU_KERNEL 改为 OPS_MATH_REGISTER_CPU_KERNELV2 - 改造算子:calc_buckets_limit_and_offset、cast、coordinates_1d_to_2d、cumsum、lin_space、slice_write、split_v、topk、tile_with_axis - 编译产出 libopconstant_folding_math.so,strings 验证全部算子符号存在 ## 关联的Issue #2717 ## 测试 ### infershape UT 验证 - 执行 bash build.sh -u --ophost --soc=ascend910b --ops=<op_name> -j16 - 验证条件:exit code == 0 且日志含 [ PASSED ] N tests. - 8 个 UT 用例全部通过(含 dtype 不一致失败用例) ### 常量折叠编译验证 - 执行 bash build.sh --pkg --jit -j16 - 验证 libopconstant_folding_math.so 产出 - strings 验证 9 个算子符号均在 so 中 - RunCpuKernelV2 / GetCpuKernelV2 入口符号存在 ### 文档更新验证 - op_list.md 中 4 个算子 op_host 列 ×→√ - 2 个算子 op_kernel 列 ×→√(coordinates_1d_to_2d、slice_write) ## 文档更新 - docs/zh/op_list.md:更新 coordinates_1d_to_2d、split_d、slice_write、calc_buckets_limit_and_offset 的 op_host/op_kernel 标记 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4821 | 2 months ago | |
doc Tools扫描错误修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !1899 merge master into master doc Tools扫描错误修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools扫描错误修改 See merge request: cann/ops-math!1899 | 7 months ago | |
docs: 修复多个算子文档格式与描述一致性 Co-authored-by: chensi79<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !4565 merge fix/issues-2573-2584-doc-format-20260811T082625Z-6364 into master docs: 修复多个算子文档格式与描述一致性 Created-by: chensi79 Commit-by: chensi79 Merged-by: cann-robot Description: ## 描述 - 修复 Cumsum 与 CumulativeLogsumexp 数学下标的 Markdown 渲染。 - 统一 DataCompare 的 FLOAT 类型描述、幂次格式并去除重复约束。 - 修正 Digamma 参数引用,规范函数原型和参数表格。 ## 关联的Issue Closes #2573, #2575, #2577, #2578, #2579, #2580, #2581, #2582, #2584 ## 测试 - git diff --check - 使用 CommonMark 解析器检查 6 个修改文档 - 提交前 trailing-whitespace、codespell、密钥检测和 OAT 合规检查通过 ## 文档更新 更新 Cumsum、CumulativeLogsumexp、DataCompare 和 Digamma 文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4565 | 3 months ago | |
fix: 修复 data_compare_tiling 空指针解引用风险 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !4947 merge 2768+2769 into master fix: 修复 data_compare_tiling 空指针解引用风险 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修复 data_compare_tiling(Arch35)中潜在的空指针解引用风险,并补充关键接口的返回值检查: - HandleEmptyTensor:对 context->SetBlockDim(1) 增加失败检查;对 context->GetWorkspaceSizes() 返回值增加 OP_CHECK_NULL_WITH_CONTEXT 空指针校验 - SetWorkspaceSize:返回类型由 void 改为 ge::graphStatus,对 GetWorkspaceSizes() 返回值增加空指针校验并返回错误状态 - DataCompareTilingFunc:对 SetWorkspaceSize 与 SetBlockDim(多核路径)的返回值增加失败检查,失败时记录日志并返回 GRAPH_FAILED - 同步整理函数签名与宏调用的代码格式 ## 关联的Issue [#2768](https://gitcode.com/cann/ops-math/issues/2768) [#2769](https://gitcode.com/cann/ops-math/issues/2769) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4947 | 2 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
Digamma示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4674 merge raii-digamma into master Digamma示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/digamma/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example digamma eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(digamma(2)=0.422784、digamma(3)=0.922784 与数学定义一致,负整数输入为极点输出 nan),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4674 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !4815 merge asc-interface-migration into master ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4815 | 2 months ago | |
[CANNBOT]: Eltwise 算子共性问题修改 Co-authored-by: ZJYzjy-shine<1275333808@qq.com> # message auto-generated for no-merge-commit merge: !4776 merge master into master [CANNBOT]: Eltwise 算子共性问题修改 Created-by: ZJYzjy-shine Commit-by: ZJYzjy-shine Merged-by: cann-robot Description: ## 描述 Eltwise 算子共性问题修改 ### 修改文件清单 | 文件 | 缺陷 | 改动内容 | |------|------|---------| | op_host/eltwise_def.cpp | 缺陷1 | 添加 this->Attr("N").AttrType(REQUIRED).Int(),使 autogen proto.h 包含 REQUIRED_ATTR(N, Int) | | op_graph/eltwise_graph_infer.cpp | 缺陷2 | 新增 InferDataType 实现(输出 dtype = 第一个输入 dtype) | | op_host/arch35/eltwise_tiling_arch35.cpp | 缺陷3+7 | GetModeAttr/FillCoeff 改用 GetAttrNum() 判断 attr 布局(3 attrs=[N,mode,coeff] / 2 attrs=[mode,coeff]),替代不可靠的 try-both-index;bytesPerElem = 4 * typeSize(不升精度);移除 ComputeUbFactor 的 unused parameter | | op_kernel/arch35/eltwise.h | 缺陷4 | 去掉 Cast 升精度分支,BF16 用 ReinterpretCast<uint16_t> + Duplicate(uint16_t) 处理零值和 coeff | | op_kernel/arch35/eltwise_tiling_key.h | 缺陷5 | 去掉 ASCENDC_TPL_DATATYPE_DECL,只保留 ASCENDC_TPL_UINT_DECL(MODE) | | op_kernel/eltwise.cpp | 缺陷6 | 模板从 <typename D_T, int MODE> 改为 <int MODE> + DTYPE_X 宏 | ### 各缺陷详情 **缺陷 1:def.cpp 缺 N 属性 → autogen proto.h 丢失 REQUIRED_ATTR(N, Int)** def.cpp 未声明 N 属性,编译系统生成 proto.h 时丢弃 N,导致 set_attr_N() 编译报错,每次安装需手动 sed patch。 **缺陷 2:缺少 InferDataType 实现** op_graph/ 下无 eltwise_graph_infer.cpp,InferDataType 未注册,GE 图输出 dtype 推导缺失。 **缺陷 3:tiling 属性 index 偏移(try-both-index 误判)** proto.h 中 N 在 attr index 0,tiling 用固定 index 0 读 mode 实际读到 N(输入个数),表现为 invalid mode 3。初版修复用 try-both-index + inputNum 消歧,但 GetAttrPointer<int64_t> 对 listFloat 类型的 coeff 属性返回不确定值,导致 mode=0(PRODUCT) 和 mode=2(MAX) 的多输入用例被误判为 mode=1(SUM)。 **缺陷 7:try-both-index 误判(缺陷 3 的回归修复)** 用 GetAttrNum() 判断 attr 列表是否包含 N 属性:3 个属性 → [N, mode, coeff],2 个属性 → [mode, coeff]。根据属性数量确定 mode 和 coeff 的正确 index,彻底消除类型不安全读取。 **缺陷 4:kernel 升精度导致精度不一致** FP16/BF16 输入 Cast 到 FP32 计算再 Cast 回,与 golden 原 dtype 链式计算策略不一致,5 条用例 FAIL。 **缺陷 5:tiling_key 冗余编码 dtype** DATATYPE_DECL 与 def 的 DataType 声明重复编码 dtype。 **缺陷 6:kernel 模板冗余 dtype 参数** <typename D_T, int MODE> 与 def 驱动 dtype 模式不一致,改为 <int MODE> + DTYPE_X 宏。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2627 ## 测试 1. **两方测试(211 条 GEIR 用例)**:使用 TTK GEIR 模式 const + dynamic 双路全量验证,正向用例 203 × 2 = 406 结果全部 PASS,负向异常用例 8 × 2 = 16 结果预期 FAIL/SKIP 2. **三方测试(100 条 GEIR 用例)**:使用三方 golden plugin 全量验证,98 PASS / 0 FAIL / 2 SKIP(超大 shape 10000001 编译失败,属旧 TBE 实现的环境问题,非算子侧缺陷) 3. 确定性验证:10 条用例双跑(同 seed=42)bit-exact 比对通过 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4776 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
Erf示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4678 merge raii-erf into master Erf示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/erf/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example erf eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(erf(0)=0.000000、erf(1)=0.842701、erf(2)=0.995322、erf(3)=0.999978 与数学定义一致),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4678 | 2 months ago | |
Erfc示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4679 merge raii-erfc into master Erfc示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/erfc/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example erfc eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(erfc 结果 1.000000、0.157299、0.004678、0.000022,即 1-erf,正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4679 | 2 months ago | |
Exp示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4680 merge raii-exp into master Exp示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/exp/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example exp eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(exp(0)=1.000000、exp(1)=2.718282、exp(2)=7.389056、exp(3)=20.085537 与数学定义一致),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4680 | 2 months ago | |
ExpSegsumGrad示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4681 merge raii-exp_segsum_grad into master ExpSegsumGrad示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/exp_segsum_grad/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - 自定义算子包方式:bash build.sh --pkg --soc=ascend950 --ops=exp_segsum_grad 从本仓源码构建算子包并本地安装,设置 ASCEND_CUSTOM_OPP_PATH 后以 cust 模式运行 bash build.sh --run_example exp_segsum_grad eager cust --vendor_name=custom --soc=ascend950:运行成功,输出符合预期(梯度结果 0、3、4、3),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4681 | 2 months ago | |
Expand示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4682 merge raii-expand into master Expand示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/expand/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example expand eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4682 | 2 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
Expm1示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4684 merge raii-expm1 into master Expm1示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/expm1/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example expm1 eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(expm1 结果 0.000000、1.718282、6.389056、19.085537 等,即 e^x-1,正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4684 | 2 months ago | |
Eye示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4685 merge raii-eye into master Eye示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/eye/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example eye eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(生成的 3×3 单位矩阵正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4685 | 2 months ago | |
Floor示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4686 merge raii-floor into master Floor示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/floor/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example floor eager --soc=ascend950:编译通过,在 Ascend950PR 上 test_aclnn_floor 与 inplace 示例均运行成功,输出符合预期(输入 [1.3, 2.5, 6.7, -4, -1.4, -1.6, -8, -16.9] 的 floor 结果 [1, 2, 6, -4, -2, -2, -8, -17] 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4686 | 2 months ago | |
FloorDiv示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4687 merge raii-floor_div into master FloorDiv示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/floor_div/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example floor_div eager --soc=ascend950:编译通过,在 Ascend950PR 上 test_aclnn_floor_divide、test_aclnn_floor_divides 均运行成功,输出符合预期(向下取整除法结果 0、1、2、1、2、2、2、2 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4687 | 2 months ago | |
fix: 修复 aclnn_remainder 空指针解引用问题 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !4948 merge 2773+2774 into master fix: 修复 aclnn_remainder 空指针解引用问题 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修复 aclnn_remainder 系列接口(aclnnRemainderTensorTensor、aclnnRemainderTensorScalar、aclnnRemainderScalarTensor 及 inplace 变体)中的空指针解引用问题。 改动原因:math/floor_mod/op_api/aclnn_remainder.cpp 中多处将 ReFormat、AllocIntArray、ConvertToTensor、GetTensorShape 等 API 的返回结果直接传入后续算子或继续访问其成员,未校验空指针。当这些 API 返回 nullptr 时(如内存分配失败),后续调用 x->GetViewShape() 或传入 BroadcastTo、FloorMod 等 l0op 算子会触发空指针解引用导致崩溃。 改动方法: 1. InitializeTensor 中对 AllocIntArray 返回的 baseShape 新增空指针检查,失败时记录 OP_LOGE 并返回 nullptr 2. BroadcastTensor 中两个 ReFormat 失败分支补充 return nullptr,避免在空指针上继续调用 GetViewShape() 3. ExecRemainderTensorTensorGetWorkspaceSize 中对 GetTensorShape 返回值新增 CHECK_RET(broadcastShape != nullptr, ACLNN_ERR_INNER_NULLPTR) 4. ExecRemainderTensorScalarGetWorkspaceSize 中 ConvertToTensor 结果先保存再校验后传入 FloorMod,并为 otherContiguous 补充 CHECK_RET 5. aclnnRemainderScalarTensorGetWorkspaceSize 中 ConvertToTensor 结果和 selfContiguous 补充 CHECK_RET 校验 ## 关联的Issue [#2773](https://gitcode.com/cann/ops-math/issues/2773) [#2774](https://gitcode.com/cann/ops-math/issues/2774) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4948 | 2 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
docs: 更新 fused_mul_add/fused_mul_add_add/mul_no_nan 算子 README 产品支持表,标记 Atlas A2/A3 系列产品为支持 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !4554 merge master into master docs: 更新 fused_mul_add/fused_mul_add_add/mul_no_nan 算子 README 产品支持表,标记 Atlas A2/A3 系列产品为支持 Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 更新 fused_mul_add、fused_mul_add_add、mul_no_nan 三个算子的 README「产品支持情况」表,将 Atlas A2/A3 训练/推理系列产品由「不支持(×)」标记为「支持(√)」。 ## 关联的Issue - #2583 ## 测试 本次为纯文档变更(README 产品支持表更新),不涉及算子功能逻辑改动,无需算子功能测试。 ## 文档更新 - math/fused_mul_add/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 - math/fused_mul_add_add/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 - math/mul_no_nan/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4554 | 3 months ago | |
docs: 更新 fused_mul_add/fused_mul_add_add/mul_no_nan 算子 README 产品支持表,标记 Atlas A2/A3 系列产品为支持 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !4554 merge master into master docs: 更新 fused_mul_add/fused_mul_add_add/mul_no_nan 算子 README 产品支持表,标记 Atlas A2/A3 系列产品为支持 Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 更新 fused_mul_add、fused_mul_add_add、mul_no_nan 三个算子的 README「产品支持情况」表,将 Atlas A2/A3 训练/推理系列产品由「不支持(×)」标记为「支持(√)」。 ## 关联的Issue - #2583 ## 测试 本次为纯文档变更(README 产品支持表更新),不涉及算子功能逻辑改动,无需算子功能测试。 ## 文档更新 - math/fused_mul_add/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 - math/fused_mul_add_add/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 - math/mul_no_nan/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4554 | 3 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
test: 更新CumulativeLogsumexp/ExpSegsumGrad/FusedMulAddnL2loss的golden测试数据 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !4537 merge master into master test: 更新CumulativeLogsumexp/ExpSegsumGrad/FusedMulAddnL2loss的golden测试数据 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 3 个算子的 golden 测试数据,新增 CumulativeLogsumexp 多路径 spec 及同步其他算子最新参考值。 | 算子 | 文件 | 变化 | |------|------|------| | CumulativeLogsumexp | golden.py | +81 | | ExpSegsumGrad | golden.py | +165 | | FusedMulAddnL2loss | golden.py | +56 | ## 类型标签 - [x] 测试 ## 关联的Issue - #2564 See merge request: cann/ops-math!4537 | 3 months ago | |
Gcd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4689 merge raii-gcd into master Gcd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/gcd/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example gcd eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(gcd 结果 0、1、2、3、4、5、6、7 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4689 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
docs: fix GetDynamicDims output dtype description Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !4933 merge 0821 into master docs: fix GetDynamicDims output dtype description Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 修正 GetDynamicDims 算子原型中输出 dims 的数据类型描述,补充已支持的 int32 类型,使注释与 TensorType({DT_INT32, DT_INT64}) 定义保持一致。 ## 关联的Issue 暂无。 ## 测试 已执行并通过: bash pre-commit run --files math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h ## 文档更新 更新 math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h 中 dims 输出的数据类型说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4933 | 2 months ago | |
FIx the null-check macros for the five operators Co-authored-by: yangjinhan<yangjinhan@huawei.com> # message auto-generated for no-merge-commit merge: !4561 merge fix-add-null-check-macro into master FIx the null-check macros for the five operators Created-by: Ruyue1550 Commit-by: yangjinhan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补全5个算子(MatrixSetDiagV2、Erfc、GetShape、HistogramFixedWidth、TileWithAxis)的判空宏 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4561 | 3 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
grouped_bias_add_grad误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4964 merge arch32-fix-groupaddbias into master grouped_bias_add_grad误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math/grouped_bias_add_grad算子中误用arch32的目录及代码引用统一修正为arch22, 与ascend910_93/ascend910b对应arch22的架构目录约定保持一致: 1. 目录重命名(3处): - math/grouped_bias_add_grad/op_host/arch32 -> arch22 - math/grouped_bias_add_grad/op_kernel/arch32 -> arch22 - math/grouped_bias_add_grad/tests/ut/op_host/arch32 -> arch22 2. 内容替换(8个文件): - CMakeLists.txt中SUPPORT_TILING_DIR由"arch32" "arch32" "arch35"修正为"arch22" "arch22" "arch35" - grouped_bias_add_grad.cpp中的op_kernel include路径 - op_host/op_kernel UT中的include路径与CMake引用 - cmake/func.cmake、docs/zh/develop/aicore_develop_guide.md中的arch目录示例 3. 同步更新classify_rule.yaml中2处math/grouped_bias_add_grad路径条目。 【影响范围】 - 涉及算子:grouped_bias_add_grad ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4964 | 2 months ago | |
HansDecode示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4694 merge raii-hans_decode into master HansDecode示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/hans_decode/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - Start compile and run examples file: ../math/hans_decode/examples/test_aclnn_hans_decode.cpp pkg_mode:cust vendor_name:hans_decode result header[0] is: 24276 result header[1] is: 2 result header[2] is: 1024 result header[3] is: 1024 result header[4] is: 0 result header[5] is: 0 result header[6] is: 0 result header[7] is: 0 result header[8] is: 9472 result header[9] is: 9472 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4694 | 2 months ago | |
HansEncode示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4695 merge raii-hans_encode into master HansEncode示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/hans_encode/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致;同时移除示例中误包含的 aclnnHansDecode 调用(原文件与 HansDecode 示例完全相同),示例仅保留 aclnnHansEncode 流程。 ## 测试 - Start compile and run examples file: ../math/hans_encode/examples/test_aclnn_hans_encode.cpp pkg_mode:cust vendor_name:hans_encode result header[0] is: 24276 result header[1] is: 2 result header[2] is: 1024 result header[3] is: 1024 result header[4] is: 0 result header[5] is: 0 result header[6] is: 0 result header[7] is: 0 result header[8] is: 9472 result header[9] is: 9472 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4695 | 2 months ago | |
Change the histogram_fixed_width's README and add the dtype property Co-authored-by: lijingxuan<lijingxuan13@huawei.com> # message auto-generated for no-merge-commit merge: !4903 merge main into master Change the histogram_fixed_width's README and add the dtype property Created-by: 2401_87820340 Commit-by: lijingxuan Merged-by: cann-robot Description: ## 描述 补充 math/histogram_fixed_width/README.md 中遗漏的 dtype 属性说明,明确该属性仅支持取值 3,默认值为 3。本次仅修改文档,不涉及算子功能及代码逻辑变更。 ## 关联的Issue 无。 ## 测试 未执行代码测试,本次改动仅涉及 README 文档。已对照算子原型 .ATTR(dtype, Int, 3) 及相关实现核对参数说明。 ## 文档更新 更新 math/histogram_fixed_width/README.md,在参数说明表中新增 dtype 可选属性。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4903 | 2 months ago | |
fix: 修复 histogram_v2 host 侧空指针解引用,bins 缺失回落默认值并补充单测 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !4953 merge 2771+2772 into master fix: 修复 histogram_v2 host 侧空指针解引用,bins 缺失回落默认值并补充单测 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修复 histogram_v2 算子 host 侧(infershape 与 tiling)因判空缺失导致的空指针解引用问题,并对 bins 属性缺失场景统一回落默认值: 1. infershape(histogram_v2_infershape.cpp):bins 属性经 GetAttrPointer 获取后未判空直接解引用,属性缺失时崩溃。补充判空;bins 属性缺失时回落默认值 DEFAULT_BINS=100(与 tiling 侧行为保持一致),bins <= 0 时仍返回 GRAPH_FAILED。 2. tiling(histogram_v2_op_tiling.cpp):Init 中 GetInputShape(0)、GetCompileInfo()、GetInputDesc(0)、GetAttrs() 均未判空直接解引用,输入 shape、compileInfo、inputDesc 或 attrs 缺失时崩溃,现已全部补充 OP_CHECK_NULL_WITH_CONTEXT 判空;bins 属性缺失时回落默认值 DEFAULT_BINS=100,并补充 bins <= 0 校验(返回 GRAPH_FAILED)。 3. DoOpTiling 检查 Init() 返回值,初始化失败时直接返回 GRAPH_FAILED,不再继续执行 SetKernelTiling。 4. 顺带整理代码格式(类声明大括号风格、单行化 override、SaveToBuffer 换行、文件末尾补换行符)。 ## 关联的Issue [#2771](https://gitcode.com/cann/ops-math/issues/2771) [#2772](https://gitcode.com/cann/ops-math/issues/2772) ## 测试 补充 host 侧 infershape UT(test_histogram_v2_infershape.cpp): - RunInferShapeWithBins 改用 std::optional<int64_t> 表示 bins 属性,支持构造属性缺失场景,并增加输出 shape 断言参数。 - 新增用例 HistogramV2_infershape_bins_missing:bins 属性缺失时回落默认值 100,infershape 返回 GRAPH_SUCCESS 且输出 shape 为 {100}。 - 已有用例覆盖 bins 负值/零值返回 GRAPH_FAILED、自定义 bins 成功等场景。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4953 | 2 months ago | |
Conj/InplaceTopKDistance/TopKPQDistanceV2 使能 AICPU 常量折叠 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4305 merge feat/enable-aicpu-constant-folding-conj-topk into master Conj/InplaceTopKDistance/TopKPQDistanceV2 使能 AICPU 常量折叠 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 Conj、InplaceTopKDistance、TopKPQDistanceV2 三个 AICPU 算子的 opInfo.opsFlag 已置为 OPS_FLAG_OPEN,但 kernel 实现并未编入 libopconstant_folding_math.so,折叠标志位处于「空开」状态——GE 图编译期即使命中常量输入,也找不到可在编译机上执行的 host 侧 kernel。 AICPU 算子参与常量折叠需同时满足两个条件:opsFlag 为 OPS_FLAG_OPEN(已满足),以及 kernel 以 host 版本编入 libopconstant_folding_math.so 并安装到 opp/built-in/op_impl/host_cpu/(本次补齐)。 改动共 6 个文件、9 增 6 删,沿用 math/tile 已验证的路径,未新增任何公共基础设施: **1)CMakeLists 追加 HOSTCPU TRUE** cmake -add_all_modules_sources(OPTYPE conj ACLNNTYPE aclnn_exclude) +add_all_modules_sources(OPTYPE conj ACLNNTYPE aclnn_exclude HOSTCPU TRUE) 该参数经 cmake/func.cmake 的 add_all_modules_sources 解析后,创建 OBJECT 目标 <op>_host_const_obj(编译期定义 OPS_MATH_AICPU_HOST_KERNEL),登记进 cache 变量 AICPU_HOST_OBJ_TARGETS;cmake/symbol.cmake 的 gen_aicpu_const_symbol() 汇总链接出 so 并 install 到 AICPU_HOST_KERNEL_IMPL。 **2)kernel 注册宏改用 OPS_MATH_REGISTER_CPU_KERNELV2** cpp +#include "aicpu/math_aicpu_register.h" -REGISTER_CPU_KERNEL(kConj, Conj); +OPS_MATH_REGISTER_CPU_KERNELV2(kConj, Conj); 与 math/tile 现状对齐。该宏为条件包装:未定义 OPS_MATH_AICPU_HOST_KERNEL 时(device 侧 aicpu so、cust 包、UT)展开为原 REGISTER_CPU_KERNEL;定义时以 weak 符号探测 RegistCpuKernelV2,存在则注册 V2、缺失则回退 V1,兼容旧版 libaicpu_context_host.a。 **未改动项**:*_aicpu_def.cpp 无需变更(opsFlag 本就是 OPS_FLAG_OPEN);三个算子的 kernel 均未依赖 driver/ascend_hal.h 等 device-only 接口,无需像 Tile 那样为 halSdmaCopy 增加条件隔离;三个算子无 tiling 文件,无需 DISABLE_IN_OPP 参数。 ## 关联的Issue #2414 ## 测试 **1. device 侧零回归验证** 将改动前的 conj_aicpu.cpp 单独预处理,与改动后 device 模式(不定义 OPS_MATH_AICPU_HOST_KERNEL)输出对比注册语句,**逐字节完全一致**: cpp std::shared_ptr<CpuKernel> Creator_kConj_Kernel() { ... } bool g_kConj_Kernel_Creator __attribute__((unused)) = RegistCpuKernel(kConj, Creator_kConj_Kernel); 整份预处理输出的差异仅为新增的 RegistCpuKernelV2 weak 声明,及 __LINE__ 因新增 include 的整体偏移。 **2. 编译构建测试** bash build.sh --pkg -j16 全量构建通过,EXIT=0,构建错误数 0。CMake 配置期确认三个新 OBJECT 目标建立: -- add_aicpu_host_kernel_modules for conj_host_const_obj -- add_aicpu_host_kernel_modules for inplace_top_k_distance_host_const_obj -- add_aicpu_host_kernel_modules for top_k_pq_distance_v2_host_const_obj 构建期确认链接成功:Linking libopconstant_folding_math.so using host compiler okay. **3. so 内容核对(正反对照)** | 算子 | HOSTCPU | so 中 | |---|---|---| | Conj / InplaceTopKDistance / TopKPQDistanceV2 | 本次新开 | 命中 | | Tile / TransData | 原有 | 命中 | | AbsGrad / BesselI0e / Bincount / AdjacentDifference | 未开 | 缺失(预期) | 反向对照用于排除字符串偶然匹配。另确认三个新 .o 各含 1 个 Creator_*_Kernel 符号且均引用 RegistCpuKernelV2。 **4. 打包验证** so 已进 run 包,路径与 AICPU_HOST_KERNEL_IMPL 一致: $ ./cann-910b-ops-math_9.1.0_linux-aarch64.run --list | grep opconstant -r--r----- 1000/1000 8015336 ./opp/built-in/op_impl/host_cpu/libopconstant_folding_math.so 解包后与构建产物 md5 一致(b9f723f0fc67519aff285e8ab535c314),并对解包实物重跑了上述正反对照,结果相同。 **5. AICPU UT 回归** bash build.sh -u --opkernel_aicpu --ops=conj,inplace_top_k_distance,top_k_pq_distance_v2 -j16 [==========] Running 26 tests from 3 test suites. TEST_CONJ_UT 6 tests TEST_INPLACE_TOP_K_DISTANCE_UT 8 tests TEST_TOP_K_PQ_DISTANCE_V2_UT 12 tests [ PASSED ] 26 tests. ## 文档更新 无。本改动不涉及对外接口与文档。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4305 | 3 months ago | |
fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !4549 merge fix/def-driven-dtype-and-infer-approximateequal into master fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 approximate_equal inv ndtri 算子共性问题修改 ## 关联的issue []https://gitcode.com/cann/ops-math/issues/2660 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-math!4549 | 2 months 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 | |
规范化修改产品术语名 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !4493 merge master into master 规范化修改产品术语名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 规范化修改产品术语名 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2283](https://gitcode.com/cann/ops-math/issues/2283) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> readme和aclnn API MD ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4493 | 3 months ago | |
IsClose示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4696 merge raii-is_close into master IsClose示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/is_close/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example is_close eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(isclose 比较掩码 1,1,1,1,0,1,1,1 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4696 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
IsInf示例改用C++ RAII资源管理,与IsFinite示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4531 merge improve-example into master IsInf示例改用C++ RAII资源管理,与IsFinite示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/is_inf/examples/test_aclnn_is_inf.cpp 由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite/examples/test_aclnn_is_finite.cpp 示例风格保持一致: - 引入 StreamPtr/DeviceMemPtr/TensorPtr(unique_ptr + 自定义 deleter)及 aclGuard(shared_ptr + 析构 lambda),stream/device内存/tensor/workspace 随作用域自动回收; - Init/CreateAclTensor 改为接收智能指针引用,CreateAclTensor 补充 aclCreateTensor 判空; - 删除 main 末尾手动释放逻辑,任一 CHECK_RET 提前 return 时资源也能正确回收。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2556 ## 测试 - bash build.sh --run_example is_inf eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(输入无inf时结果全为0),示例正常退出,资源回收正常。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4531 | 3 months ago | |
fix: 修复多算子代码告警问题 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !3784 merge fix/code-review-warnings into master fix: 修复多算子代码告警问题 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复多算子代码告警问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/1323 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3784 | 3 months ago | |
IsNegInf示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4630 merge isneginf-raii-example into master IsNegInf示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/is_neg_inf/examples/test_aclnn_isneginf.cpp 由手动资源管理改为 C++ RAII 管理,与同仓 math/is_inf、math/is_finite 示例风格保持一致: - 引入 StreamPtr/DeviceMemPtr/TensorPtr(unique_ptr + 自定义 deleter)及 aclGuard(shared_ptr + 析构 lambda),stream/device内存/tensor/workspace 随作用域自动回收; - Init/CreateAclTensor 改为接收智能指针引用,CreateAclTensor 补充 aclCreateTensor 判空; - 删除 main 末尾手动释放逻辑,任一 CHECK_RET 提前 return 时资源也能正确回收; - 顺带将结果打印格式 %f 修正为 %d(ACL_BOOL 输出为 0/1)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2621 ## 测试 未在 Ascend 环境实际编译运行(缺少 aclnnop 生成头文件与设备);改动结构与已合并的 is_inf(PR #4531)、is_finite 示例完全一致。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4630 | 3 months ago | |
IsPosInf示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4697 merge raii-is_pos_inf into master IsPosInf示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/is_pos_inf/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example is_pos_inf eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(输入不含 +inf,isposinf 结果全 0 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4697 | 2 months ago | |
KlDivV2示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4698 merge raii-kl_div_v2 into master KlDivV2示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/kl_div_v2/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example kl_div_v2 eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(KL 散度结果 -6.906180),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4698 | 2 months ago | |
sort类算子AscendC MicroAPI整改 Co-authored-by: tujun6<tujun6@huawei.com> # message auto-generated for no-merge-commit merge: !4790 merge ascendc_api_replace into master sort类算子AscendC MicroAPI整改 Created-by: tujun6 Commit-by: tujun6 Merged-by: cann-robot Description: ## 描述 本 PR 对 sort 类算子( sort、sort_with_index、kth_value)执行 arch35 MicroAPI 旧接口别名替换整改。 CANN 9.1.0 的 arch35(ascend950)MicroAPI 中,大量旧接口名与新接口名是同一 Impl 函数的别名。本次将以下旧接口统一替换为新接口名,保证代码规范并维持二进制完全等价: | 旧接口 | 新接口 | 说明 | |---|---|---| | __local_mem__ | __ubuf__ | 存储类属性标识 | | DataCopy(RegTensor 首参) | LoadAlign | 按 Load 方向判定 | | DataCopy(addr 首参) | StoreAlign | 按 Store 方向判定 | | CompareScalar | Compares | 标量比较 | | ReduceSum(3 参数 MicroAPI) | Reduce<ReduceType::SUM> | 仅 MicroAPI 层级,排除传统高阶 4 参数 API | | DataCopyGather | Gather | 聚集拷贝 | 替换统计: | 算子 | 目录 | 修改文件数 | 替换处数 | .o md5 一致 | |---|---|---|---|---| | sort | math/sort | 5 | 158 | ✅ 22 个 .o 全部一致 | | sort_with_index | math/sort_with_index | 1 | 2 | ✅ 22 个 .o 全部一致 | | kth_value | math/kth_value | 2 | 62 | ✅ 11 个 .o 全部一致 | | **合计** | | **8** | **222** | | > 注:top_k_v2 算子的同类整改已拆分到独立分支 test_tj,后续单独提交。 ## 关联的Issue #2665 ## 测试 对每个算子分别执行编译验证(bash build.sh --ops=<算子> --soc=ascend950 --opkernel -j16): 1. 编译替换后的代码,保存所有 .o 文件的 md5。 2. git stash 暂存修改,编译原始代码,保存原始 .o 的 md5。 3. 对比修改前后 md5,全部完全一致,证明替换是二进制等价的。 4. git stash pop 恢复修改。 最终残留扫描:全部 28 类旧 API 零残留(不可替换项如 GatherMask、PrefixSum、传统高阶 API、参数结构体等保持不变属正常)。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:arch35 MicroAPI 旧接口别名整改 See merge request: cann/ops-math!4790 | 2 months ago | |
LeftShift示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4699 merge raii-left_shift into master LeftShift示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/left_shift/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example left_shift eager --soc=ascend950:编译通过,在 Ascend950PR 上 left_shift、left_shifts 示例均运行成功,输出符合预期(左移结果 20、80、240、640 等正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4699 | 2 months ago | |
Lerp示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4700 merge raii-lerp into master Lerp示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/lerp/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 Start to run examples, name:lerp mode:eager Start compile and run examples file: ../math/lerp/examples/test_aclnn_inplace_lerp.cpp pkg_mode:cust vendor_name:lerp result[0] is: 7.000000 result[1] is: 8.000000 result[2] is: 9.000000 result[3] is: 10.000000 result[4] is: 11.000000 result[5] is: 12.000000 result[6] is: 13.000000 result[7] is: 14.000000 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) ## 关联 Issue https://gitcode.com/cann/ops-math/issues/2733 See merge request: cann/ops-math!4700 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
LessEqual示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4702 merge raii-less_equal into master LessEqual示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/less_equal/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example less_equal eager --soc=ascend950:编译通过,在 Ascend950PR 上 le_scalar、le_tensor、inplace_le_scalar、inplace_le_tensor 共 4 个示例均运行成功,输出符合预期(小于等于比较掩码 [1,1,1,1,0,0,0,0] 等正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4702 | 2 months ago | |
Lgamma示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4703 merge raii-lgamma into master Lgamma示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/lgamma/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example lgamma eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(lgamma(1)=0.000000、lgamma(3)=0.693147 与数学定义一致,非正整数输入输出 inf),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4703 | 2 months ago | |
补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4821 merge dev into master 补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 包含两部分改动: ### 1. 补充 4 个算子 rt2 infershape 实现 从 canndev 仓迁移 infershape 逻辑到 ops-math,包含 InferShape + InferDataType + InferShapeRange: - **coordinates_1d_to_2d**:rt1 改造为 rt2,3 个输出(row/col/n)的 shape+dtype+range 均来自输入 x - **split_d**:rt2 直接迁移,DYNAMIC_OUTPUT 按 split_dim/num_split 属性计算 shape+range - **slice_write**:rt1 改造为 rt2,输出 shape+dtype+range 来自输入 x,含 x/value dtype 一致性校验 - **calc_buckets_limit_and_offset**:rt1 改造为 rt2,2 个输出 shape+dtype 来自 bucket_list/ivf_offset - 同步迁移 UT 用例(共 8 个),改造为 InfershapeContextPara + ExecuteTestCase 格式 ### 2. 9 个算子常量折叠 HOSTCPU 改造 - CMakeLists.txt 加 HOSTCPU TRUE 参数 - 算子注册宏从 REGISTER_CPU_KERNEL 改为 OPS_MATH_REGISTER_CPU_KERNELV2 - 改造算子:calc_buckets_limit_and_offset、cast、coordinates_1d_to_2d、cumsum、lin_space、slice_write、split_v、topk、tile_with_axis - 编译产出 libopconstant_folding_math.so,strings 验证全部算子符号存在 ## 关联的Issue #2717 ## 测试 ### infershape UT 验证 - 执行 bash build.sh -u --ophost --soc=ascend910b --ops=<op_name> -j16 - 验证条件:exit code == 0 且日志含 [ PASSED ] N tests. - 8 个 UT 用例全部通过(含 dtype 不一致失败用例) ### 常量折叠编译验证 - 执行 bash build.sh --pkg --jit -j16 - 验证 libopconstant_folding_math.so 产出 - strings 验证 9 个算子符号均在 so 中 - RunCpuKernelV2 / GetCpuKernelV2 入口符号存在 ### 文档更新验证 - op_list.md 中 4 个算子 op_host 列 ×→√ - 2 个算子 op_kernel 列 ×→√(coordinates_1d_to_2d、slice_write) ## 文档更新 - docs/zh/op_list.md:更新 coordinates_1d_to_2d、split_d、slice_write、calc_buckets_limit_and_offset 的 op_host/op_kernel 标记 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4821 | 2 months ago | |
Log示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4704 merge raii-log into master Log示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/log/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example log eager --soc=ascend950:编译通过,在 Ascend950PR 上 test_aclnn_log、test_aclnn_log10、test_aclnn_log2 及对应 inplace 示例均运行成功,输出符合预期(输入 [0,1,…,7] 的 log 结果 -inf、0.000000、0.693147、1.098612、… 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4704 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4927 merge master into master fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 消除 reinterpret_cast(G.EXP.15-CPP,4 处)** - 涉及文件:atan2、cdist_grad、complex、log_add_exp 的 op_host/arch35 tiling 文件。 - 方法:将 reinterpret_cast<const T*>(context->GetCompileInfo()) 替换为框架提供的模板接口 context->GetCompileInfo<T>()(与仓库内 assign_add、floor、round 等文件既有写法一致),类型安全且语义等价。 **2. 消除 const_cast(G.EXP.16-CPP,5 处)** - 涉及文件:mul/op_api/mul.cpp、pow/op_api/aclnn_pow.cpp。 - 方法: - mul.cpp:将文件内 static 辅助函数 MulAiCpu 的输出参数改为 const aclTensor*(仓库内 AbsAiCpu 等已有相同先例),MulInplace 直接复用原 const 输入 rfRes,消除 const_cast。 - aclnn_pow.cpp:powOut 改为 const aclTensor*,Pows/Square/Pow/selfCast 分支直接赋值,去掉 4 处 const_cast<aclTensor*>。 - 均未修改任何公开函数签名。 **3. 统一操作数基本类型(G.EXP.27-CPP,2 处)** - pow/op_api/aclnn_pow.cpp: - CheckSupportPows 中的 6 处 exponent->ToFloat() != 常量 比较统一补充 static_cast<float>,与文件内既有写法(canUseSquare、canNoUseOp)保持一致。 - == 1.0 改为 == 1.0f,避免 double 字面量与 float 操作数比较。 - 注:canNoUseOp(L452)当前已带 static_cast<float> 且 NOOP_EXP 为 float 常量,判定为已符合规范,未改动。 **4. 控制表达式布尔化(G.EXP.36-CPP,1 处)** - logical_or/op_api/aclnn_logical_or.cpp:KERNEL_SUPPORTED_DTYPE_SET.count(selfDtype) 改为 count(selfDtype) > 0,使 if 条件为显式布尔表达式。 **5. 函数声明/定义参数名一致(G.FUN.02-CPP,2 处)** - pdist/op_api/pdist.cpp:定义参数 self 更名为 input,与头文件声明一致。 - logspace/op_api/aclnn_logspace.cpp:定义去掉 stream 的 const 修饰,与头文件声明一致。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(类型安全转换、const 修饰、类型统一、布尔表达式显式化、参数重命名),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(消除 reinterpret_cast/const_cast、统一类型操作数、布尔表达式显式化、参数名一致性) See merge request: cann/ops-math!4927 | 2 months ago | |
Logdet示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4707 merge raii-logdet into master Logdet示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/logdet/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example logdet eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(输入的 3 个 2×2 矩阵行列式均为负,logdet 结果为 nan,正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4707 | 2 months ago | |
LogicalAnd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4709 merge raii-logical_and into master LogicalAnd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/logical_and/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example logical_and eager --soc=ascend950:编译通过,在 Ascend950PR 上 logical_and、inplace_logical_and 示例均运行成功,输出符合预期(逻辑与掩码 [0,1,1,0,1,1,0,0] 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4709 | 2 months ago | |
修复 examples 及 docs 中 CHECK_RET 宏调用末尾多余分号和行尾空格问题 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4460 merge fix/check-ret-and-trailing-whitespace into master 修复 examples 及 docs 中 CHECK_RET 宏调用末尾多余分号和行尾空格问题 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 examples 及 docs 中 CHECK_RET 宏调用末尾多余分号和行尾空格问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/4603 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4460 | 3 months ago | |
fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4927 merge master into master fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 消除 reinterpret_cast(G.EXP.15-CPP,4 处)** - 涉及文件:atan2、cdist_grad、complex、log_add_exp 的 op_host/arch35 tiling 文件。 - 方法:将 reinterpret_cast<const T*>(context->GetCompileInfo()) 替换为框架提供的模板接口 context->GetCompileInfo<T>()(与仓库内 assign_add、floor、round 等文件既有写法一致),类型安全且语义等价。 **2. 消除 const_cast(G.EXP.16-CPP,5 处)** - 涉及文件:mul/op_api/mul.cpp、pow/op_api/aclnn_pow.cpp。 - 方法: - mul.cpp:将文件内 static 辅助函数 MulAiCpu 的输出参数改为 const aclTensor*(仓库内 AbsAiCpu 等已有相同先例),MulInplace 直接复用原 const 输入 rfRes,消除 const_cast。 - aclnn_pow.cpp:powOut 改为 const aclTensor*,Pows/Square/Pow/selfCast 分支直接赋值,去掉 4 处 const_cast<aclTensor*>。 - 均未修改任何公开函数签名。 **3. 统一操作数基本类型(G.EXP.27-CPP,2 处)** - pow/op_api/aclnn_pow.cpp: - CheckSupportPows 中的 6 处 exponent->ToFloat() != 常量 比较统一补充 static_cast<float>,与文件内既有写法(canUseSquare、canNoUseOp)保持一致。 - == 1.0 改为 == 1.0f,避免 double 字面量与 float 操作数比较。 - 注:canNoUseOp(L452)当前已带 static_cast<float> 且 NOOP_EXP 为 float 常量,判定为已符合规范,未改动。 **4. 控制表达式布尔化(G.EXP.36-CPP,1 处)** - logical_or/op_api/aclnn_logical_or.cpp:KERNEL_SUPPORTED_DTYPE_SET.count(selfDtype) 改为 count(selfDtype) > 0,使 if 条件为显式布尔表达式。 **5. 函数声明/定义参数名一致(G.FUN.02-CPP,2 处)** - pdist/op_api/pdist.cpp:定义参数 self 更名为 input,与头文件声明一致。 - logspace/op_api/aclnn_logspace.cpp:定义去掉 stream 的 const 修饰,与头文件声明一致。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(类型安全转换、const 修饰、类型统一、布尔表达式显式化、参数重命名),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(消除 reinterpret_cast/const_cast、统一类型操作数、布尔表达式显式化、参数名一致性) See merge request: cann/ops-math!4927 | 2 months ago | |
fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4927 merge master into master fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 消除 reinterpret_cast(G.EXP.15-CPP,4 处)** - 涉及文件:atan2、cdist_grad、complex、log_add_exp 的 op_host/arch35 tiling 文件。 - 方法:将 reinterpret_cast<const T*>(context->GetCompileInfo()) 替换为框架提供的模板接口 context->GetCompileInfo<T>()(与仓库内 assign_add、floor、round 等文件既有写法一致),类型安全且语义等价。 **2. 消除 const_cast(G.EXP.16-CPP,5 处)** - 涉及文件:mul/op_api/mul.cpp、pow/op_api/aclnn_pow.cpp。 - 方法: - mul.cpp:将文件内 static 辅助函数 MulAiCpu 的输出参数改为 const aclTensor*(仓库内 AbsAiCpu 等已有相同先例),MulInplace 直接复用原 const 输入 rfRes,消除 const_cast。 - aclnn_pow.cpp:powOut 改为 const aclTensor*,Pows/Square/Pow/selfCast 分支直接赋值,去掉 4 处 const_cast<aclTensor*>。 - 均未修改任何公开函数签名。 **3. 统一操作数基本类型(G.EXP.27-CPP,2 处)** - pow/op_api/aclnn_pow.cpp: - CheckSupportPows 中的 6 处 exponent->ToFloat() != 常量 比较统一补充 static_cast<float>,与文件内既有写法(canUseSquare、canNoUseOp)保持一致。 - == 1.0 改为 == 1.0f,避免 double 字面量与 float 操作数比较。 - 注:canNoUseOp(L452)当前已带 static_cast<float> 且 NOOP_EXP 为 float 常量,判定为已符合规范,未改动。 **4. 控制表达式布尔化(G.EXP.36-CPP,1 处)** - logical_or/op_api/aclnn_logical_or.cpp:KERNEL_SUPPORTED_DTYPE_SET.count(selfDtype) 改为 count(selfDtype) > 0,使 if 条件为显式布尔表达式。 **5. 函数声明/定义参数名一致(G.FUN.02-CPP,2 处)** - pdist/op_api/pdist.cpp:定义参数 self 更名为 input,与头文件声明一致。 - logspace/op_api/aclnn_logspace.cpp:定义去掉 stream 的 const 修饰,与头文件声明一致。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(类型安全转换、const 修饰、类型统一、布尔表达式显式化、参数重命名),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(消除 reinterpret_cast/const_cast、统一类型操作数、布尔表达式显式化、参数名一致性) See merge request: cann/ops-math!4927 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
refactor: arch35算子Reg级API重命名迁移 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !4468 merge work_8 into master refactor: arch35算子Reg级API重命名迁移 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 将 arch35 架构下 40 个算子 kernel 文件中的 Reg 级 API 名称从旧命名迁移到新命名,与已迁移的算子(xlogy、dawsn、rint、cdist、reduce_all、power 等)保持一致。 涉及的 API 重命名映射: - __local_mem__ → __ubuf__(地址空间限定符统一) - Reg::DataCopy (LoadDist) → Reg::LoadAlign(UB 到寄存器的对齐加载) - Reg::DataCopy (StoreDist) → Reg::StoreAlign(寄存器到 UB 的对齐存储) - Reg::DataCopyUnAlignPre → Reg::LoadUnAlignPre - Reg::DataCopyUnAlign → Reg::LoadUnAlign - Reg::MaskPack → Reg::Pack - Reg::MaskUnPack → Reg::UnPack - Reg::MaskAnd → Reg::And(与已有 Reg::And 通过重载统一) - Reg::CompareScalar → Reg::Compares - Reg::UnalignReg → Reg::UnalignRegForLoad 涉及的算子包括:clip_by_value、clip_by_value_v2、adjacent_difference、bitwise_xor、div、floor_div、floor_mod、lerp、logical_or、mod、pow、signbit、tanh_grad。 此外,adjacent_difference 算子中存在原有的 __local_mem__/__ubuf__ 地址空间限定符不一致问题(左侧声明与右侧转换不匹配),本次重命名一并修复。 ### 改动原因 AscendC SDK 更新了 Reg 级 API 命名规范,将原有的 DataCopy 拆分为语义更明确的 LoadAlign/StoreAlign,并移除了 Mask 系列 API 的 "Mask" 前缀(通过重载统一)。本 PR 将相关算子迁移至新命名。 ### 改动方法 纯机械重命名,无逻辑变更。所有改动均为 1:1 的 API 名称替换,增删行数完全对称(+417 -417)。Load/Store 语义区分基于原有模板参数(LoadDist → LoadAlign, StoreDist → StoreAlign)和参数顺序(寄存器在前为 Load,地址在前为 Store)。 ## 关联的Issue - #2529 ## 测试 待补充:二级冒烟测试、算子泛化测试。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 See merge request: cann/ops-math!4468 | 3 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
批量修改md文档冗余空格第3批 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3318 merge master into master 批量修改md文档冗余空格第3批 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改md中冗余空格 ## 关联的Issue [DOC_1962#冗余空格](https://gitcode.com/cann/ops-math/issues/1962) ## 测试 自验证 ## 文档更新 all md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [X ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3318 | 5 months ago | |
docs: 更新 fused_mul_add/fused_mul_add_add/mul_no_nan 算子 README 产品支持表,标记 Atlas A2/A3 系列产品为支持 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !4554 merge master into master docs: 更新 fused_mul_add/fused_mul_add_add/mul_no_nan 算子 README 产品支持表,标记 Atlas A2/A3 系列产品为支持 Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 更新 fused_mul_add、fused_mul_add_add、mul_no_nan 三个算子的 README「产品支持情况」表,将 Atlas A2/A3 训练/推理系列产品由「不支持(×)」标记为「支持(√)」。 ## 关联的Issue - #2583 ## 测试 本次为纯文档变更(README 产品支持表更新),不涉及算子功能逻辑改动,无需算子功能测试。 ## 文档更新 - math/fused_mul_add/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 - math/fused_mul_add_add/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 - math/mul_no_nan/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4554 | 3 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !4549 merge fix/def-driven-dtype-and-infer-approximateequal into master fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 approximate_equal inv ndtri 算子共性问题修改 ## 关联的issue []https://gitcode.com/cann/ops-math/issues/2660 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-math!4549 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
剥离math下op_host/op_api到op_api Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4246 merge master into master 剥离math下op_host/op_api到op_api Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更主要对 math 目录下多个算子的目录结构进行扁平化整理:将原先嵌套在 op_host/op_api/ 中的 API 实现文件直接提升到 op_api/ 层级 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2392 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4246 | 3 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months 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 | |
fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4927 merge master into master fix: 修复代码规范问题,消除reinterpret_cast/const_cast并统一类型操作数 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 消除 reinterpret_cast(G.EXP.15-CPP,4 处)** - 涉及文件:atan2、cdist_grad、complex、log_add_exp 的 op_host/arch35 tiling 文件。 - 方法:将 reinterpret_cast<const T*>(context->GetCompileInfo()) 替换为框架提供的模板接口 context->GetCompileInfo<T>()(与仓库内 assign_add、floor、round 等文件既有写法一致),类型安全且语义等价。 **2. 消除 const_cast(G.EXP.16-CPP,5 处)** - 涉及文件:mul/op_api/mul.cpp、pow/op_api/aclnn_pow.cpp。 - 方法: - mul.cpp:将文件内 static 辅助函数 MulAiCpu 的输出参数改为 const aclTensor*(仓库内 AbsAiCpu 等已有相同先例),MulInplace 直接复用原 const 输入 rfRes,消除 const_cast。 - aclnn_pow.cpp:powOut 改为 const aclTensor*,Pows/Square/Pow/selfCast 分支直接赋值,去掉 4 处 const_cast<aclTensor*>。 - 均未修改任何公开函数签名。 **3. 统一操作数基本类型(G.EXP.27-CPP,2 处)** - pow/op_api/aclnn_pow.cpp: - CheckSupportPows 中的 6 处 exponent->ToFloat() != 常量 比较统一补充 static_cast<float>,与文件内既有写法(canUseSquare、canNoUseOp)保持一致。 - == 1.0 改为 == 1.0f,避免 double 字面量与 float 操作数比较。 - 注:canNoUseOp(L452)当前已带 static_cast<float> 且 NOOP_EXP 为 float 常量,判定为已符合规范,未改动。 **4. 控制表达式布尔化(G.EXP.36-CPP,1 处)** - logical_or/op_api/aclnn_logical_or.cpp:KERNEL_SUPPORTED_DTYPE_SET.count(selfDtype) 改为 count(selfDtype) > 0,使 if 条件为显式布尔表达式。 **5. 函数声明/定义参数名一致(G.FUN.02-CPP,2 处)** - pdist/op_api/pdist.cpp:定义参数 self 更名为 input,与头文件声明一致。 - logspace/op_api/aclnn_logspace.cpp:定义去掉 stream 的 const 修饰,与头文件声明一致。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(类型安全转换、const 修饰、类型统一、布尔表达式显式化、参数重命名),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(消除 reinterpret_cast/const_cast、统一类型操作数、布尔表达式显式化、参数名一致性) See merge request: cann/ops-math!4927 | 2 months ago | |
fix: 修复代码规范问题,统一const修饰与字面量规范化 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4925 merge master into master fix: 修复代码规范问题,统一const修饰与字面量规范化 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 只读参数补充 const 修饰(G.CNS.04-CPP,10 处)** - 涉及文件:reduce_log_sum_exp/op_api/aclnn_logsumexp.cpp(CheckShape/CheckPromoteType/CheckDtypeValid)、reduce_var/op_api/aclnn_var.cpp(CheckShape/CheckDtypeValid)、reduce_var/op_api/aclnn_var_mean.cpp(CheckDtypeValid/CheckShape)、addr/op_api/aclnn_addr.cpp(CheckDtypeValid)、cosh/op_api/aclnn_cosh.cpp(CheckInplaceDtypeValid)。 - 方法:为这些只读校验函数中不修改对象本身的 aclTensor* 输出参数添加 const。均为函数内部 static 校验函数的签名调整,调用方无需任何改动。 **2. 字面量提取为命名常量(G.CNS.02-CPP,1 处)** - cross/op_host/arch35/cross_tiling.cpp:cross 维度大小字面量 3 提取为常量 CROSS_DIM_SIZE,消除难以理解的魔法数字。 **3. 其他规范问题(3 处)** - cross/op_host/arch35/cross_tiling.cpp:删除注释掉的死代码 // coreNum = 1;(G.EXP.43-CPP)。 - reduce_mean_with_count/op_api/reduce_mean_with_count.cpp:axisSet.count(d) 改为 axisSet.count(d) > 0,使 if 条件为显式布尔表达式(G.EXP.36-CPP)。 - asinh/op_api/aclnn_asinh.cpp:删除变量声明与 if 之间的冗余空行(G.FMT.17-CPP)。 **4. 成员变量显式初始化(G.CLS.01-CPP,2 处)** - cross/op_host/arch35/cross_tiling.h、polar/op_host/arch35/polar_tiling.h:未初始化的 compileInfo_ 指针成员显式初始化为 nullptr。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员初始化),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员变量初始化) See merge request: cann/ops-math!4925 | 2 months ago | |
[CANNBOT]acosh_grad支持数据类型校验,population_count、scale golden修改 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !4381 merge ticket into master [CANNBOT]acosh_grad支持数据类型校验,population_count、scale golden修改 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> acosh_grad支持数据类型校验,population_count、scale golden修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2478 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4381 | 3 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
fixed README.md Co-authored-by: littlecc<wangguocheng3@huawei.com> # message auto-generated for no-merge-commit merge: !4211 merge br_power_fix into master fixed README.md Created-by: littlecc Commit-by: littlecc Merged-by: cann-robot Description: ## 描述 power算子按规范修改文档 ## 关联的Issue [#2307](https://gitcode.com/cann/ops-math/issues/2307) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4211 | 3 months ago | |
剥离math下op_host/op_api到op_api Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4246 merge master into master 剥离math下op_host/op_api到op_api Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更主要对 math 目录下多个算子的目录结构进行扁平化整理:将原先嵌套在 op_host/op_api/ 中的 API 实现文件直接提升到 op_api/ 层级 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2392 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4246 | 3 months ago | |
math\precision_compare目录调整,重复头文件优化 Co-authored-by: doufloat<baijinxiang@huawei.com> # message auto-generated for no-merge-commit merge: !4787 merge feature/head into master math\precision_compare目录调整,重复头文件优化 Created-by: doufloat Commit-by: doufloat Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> math\precision_compare目录调整 oam仓与math仓存在重名头文件,需调整 src/aml/ops/precision_compare/op_host/op_api/precision_compare.h src/aml/ops/precision_compare/op_host/op_api/precision_compare_util.h ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/2663 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4787 | 2 months ago | |
math仓新增InplaceTopKDistance、TopKPQDistanceV2与ProdEnvMatACalcRij AICPU算子 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4133 merge aicpu_migrate_inplace_topk_distance_and_topk_pq_distance_v2 into master math仓新增InplaceTopKDistance、TopKPQDistanceV2与ProdEnvMatACalcRij AICPU算子 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 从 canndev 迁入三个 AICPU 算子到 math 目录,交付件含 op_graph(proto + InferDataType)、op_host(RT2 InferShape)、op_kernel_aicpu(kernel + opdef)、UT、GE 图模式 example、README,并同步 docs/zh/op_list.md(硬件单元 AI CPU)。两算子无 aclnn 接口(ACLNNTYPE aclnn_exclude)。 **InplaceTopKDistance**(无 OUTPUT,原地更新):将一组已排序距离数据与一组新数据合并重排后取前 k 个,原地更新 topk_pq_distance/topk_pq_index/topk_pq_ivf。 - 源侧 RT1 InferShape 为空实现(无输出算子),1:1 迁为 RT2 空 InferShape;RT1 Verify 无 RT2 适配接口,不迁,相关输入校验由 kernel 运行期守卫承担。 - example 以 SetInputs().SetTargets() 驱动(无输出算子不能进 SetOutputs)。 **TopKPQDistanceV2**:借助分组极值剪枝,在最后一维查找 k 个最大/最小元素及索引。 - RT2 InferShape 迁自 canndev op_proto/runtime,输出 shape [batch, k]。 - 补 RT2 InferDataType:canndev RT1 在 InferShape 内用 SetDataType 设了输出 dtype(topk_distance=输入 dtype、topk_index=int32),拆到 RT2 后归 op_graph/*_graph_infer.cpp。 - 迁移即重构(仅本次迁入文件):VLA Item<T>[k_] 改 std::vector;ParallelFor 返回值纳入错误传播;移除死代码/未定义声明/无用 include;fp16 统一 Eigen::half;补 k>0 守卫(源 kernel 的 VLA 在 k<=0 时为 UB),且 kernel 与 InferShape 两侧校验边界对齐;group_size 除零守卫按 G.EXP.22-CPP 改为紧邻单一 ==0 判断。 两算子 opInfo 逐个回 canndev 源核对:opsFlag=OPS_FLAG_OPEN、formatAgnostic=True 显式覆盖默认,subTypeOfInferShape=1 用默认;打包后回查生成的 aicpu_kernel.ini 与源一致。新增守卫仅拒绝非法输入,不改变合法输入下的行为。 ## 关联的Issue #2259 ## 测试 验证环境:Ascend 910B3,全量算子包(安装未用 --force)。 1. **AICPU UT**:bash build.sh -u --opkernel_aicpu --ops=inplace_top_k_distance,top_k_pq_distance_v2 --soc=ascend910b —— **19/19 通过**(InplaceTopKDistance 7 + TopKPQDistanceV2 12)。成功路径均校验实际输出数值,覆盖 Compute 各失败分支;UT 数据构造为无并列值(std::sort/堆非稳定排序)。 2. **infershape UT**:**13/13 通过**(TopKPQDistanceV2 10 含 k_not_positive + InplaceTopKDistance 3)。 3. **全量打包**:bash build.sh --pkg --soc=ascend910b,exe_compile 失败数 0。 4. **符号自检**:libmath_aicpu_kernels.so 含两个 *_aicpu.cpp;libcust_opsproto_rt2.0.so 含 InferDataType4TopKPQDistanceV2。 5. **安装**:.run --quiet 成功(未用 --force)。 6. **图模式 example 上板**: - TopKPQDistanceV2:topk_distance=DT_FLOAT(InferDataType 生效)、topk_index=DT_INT32,值 1 2 3 5 / 1 5 3 0 与预期一致。 - InplaceTopKDistance:图执行成功(无输出,结果原地更新在 device 侧输入 buffer,数值正确性由 UT 覆盖)。 - 两者日志均确认经 aicpu_custom_scheduler 执行 RunCpuKernel,即走到自定义 AICPU kernel。 ## 文档更新 - 新增 math/inplace_top_k_distance/README.md、math/top_k_pq_distance_v2/README.md。 - docs/zh/op_list.md 新增两个算子条目,硬件单元 AI CPU。 - 无 aclnn 接口,不涉及 docs/zh/op_api_list.md 与 docs/aclnn*.md。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4133 | 3 months ago | |
docs: 更新8个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !4580 merge doc into master docs: 更新8个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新8个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2614 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4580 | 3 months ago | |
docs: 更新8个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !4580 merge doc into master docs: 更新8个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新8个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2614 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4580 | 3 months ago | |
合并q_r和linalg_gr算子目录 Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4290 merge master into master 合并q_r和linalg_gr算子目录 Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 此 PR 将原本分布在 math/q_r/ 和 math/linalg_qr/ 两个独立目录中的 QR 分解相关算子代码统一整合到 math/qr/ 目录下,同时将算子 API 实现层级从 op_host/op_api/ 扁平化为 op_api/ ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2406 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4290 | 3 months ago | |
RadixTopK关闭自动同步 Co-authored-by: huang-wei-chen<chenhuangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !4184 merge radixtopk_without_autosync into master RadixTopK关闭自动同步 Created-by: huang-wei-chen Commit-by: huang-wei-chen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 关闭RadixTopK自动同步,手动插入同步,优化算子性能。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#2286](https://gitcode.com/cann/ops-math/issues/2286) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化200+用例精度通过,性能提升2%-5% ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4184 | 3 months ago | |
feat(ragged_bin_count): 新增 RaggedBinCount 算子 Ascend 950 arch35 实现 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4599 merge feat/ragged-bin-count-ascend950-pr into master feat(ragged_bin_count): 新增 RaggedBinCount 算子 Ascend 950 arch35 实现 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ### 相关的Issue #2758 ### 原因(目的、解决的问题等) 新增 RaggedBinCount 算子的 Ascend 950(DAV_3510 / arch35)实现。该算子按 splits 划分的 ragged row 统计每个 bin 的出现次数或权重和,与 TensorFlow RaggedBincount 语义兼容。canndev 已有 A2/A3 侧既有实现,本 PR 只补齐 A5 侧原生实现,不改动 A2/A3。 ### 描述(做了什么,变更了什么) - **调用边界**:仅 Graph IR RaggedBinCount。CMakeLists.txt 显式 ACLNNTYPE aclnn_exclude,不新增同名 aclnn 接口。 - **Kernel**:DAV_3510 SIMT direct-GM,key = mapping*4 + binary*2 + hasWeights 共 8 个 tiling key;dtype 与 u32/u64 索引宽度不额外增加 key。 - **原生 dtype**:精确两组 —— splits=int64 + values/size=int32|int64 + weights/output=float32。 - **dtype 门禁**:Graph/Host 通过 AICore CheckSupport + needCheckSupport=true 在选路阶段拒绝非原生 dtype,避免公共 IR 自动插 Cast 后误入原生 kernel。 - **Infer 划分**:InferDataType 仅图场景使用,置于 op_graph/;InferShape 图与单算子共用,留在 op_host/。 - **交付件**:examples/ 图模式调用样例、tests/assets/golden.py(TestSpec 格式)、docs/zh/op_list.md 条目。 ### 验证过程和结果 - UT 57/57:op_host 56(arch35 tiling 36 + infershape 20,含 4 条 -2 UNKNOWN_RANK 动态 rank 用例)、op_graph 1;CI 在 ascend910b 上另跑一遍 infershape 20 条,同样全过。 - op_kernel UT(36 条,覆盖 8 个 tilingKey、两种 values dtype、uint64 索引模板与 UB 私有直方图路径)**暂未随本 PR 提交**:cmake/ut.cmake 会为任何带 tests/ut/op_kernel/ 的算子建 gen_head 目标,其 gen_tiling_head_file.py 首行 import tbe 在当前 UT 节点(numpy 2.2.6,而 CANN 9.2.0 的 tbe 按 numpy 1.x 编译)抛 ImportError: numpy.core.multiarray failed to import,导致所有 gtest 全 PASSED 的情况下 UT 阶段仍失败。该问题与算子代码无关、本地(numpy 1.26.4)不可复现,待节点环境修复后单独提 PR 补回。 - 真实 Ascend950PR 上板:正向矩阵 28/28(26 次真实 kernel launch + 2 个合法零元素 no-launch);不支持 dtype 拒绝 2/2,Cast / native launch / fallback 均为 0。 - 包审计:精确两组 native dtype,两份 binary 均含 key 0..7,needCheckSupport=true,同名 ACLNN / op_api / AI_CPU fallback 均为 0。 - golden 采用竞品实现而非 numpy 公式:_compute 用 torch.bincount 逐行拼接,third_party 用独立的 scatter_add_ 路径;两者随机 200 例逐位一致,并与 TensorFlow raw_ops.RaggedBincount 随机 190 例一致。 See merge request: cann/ops-math!4599 | 2 months ago | |
修改aclnnArange空指针校验返回码 Co-authored-by: xiu_ling_wang<wangxiuling2@h-partners.com> # message auto-generated for no-merge-commit merge: !4426 merge aclnnArange into master 修改aclnnArange空指针校验返回码 Created-by: xiu_ling_wang Commit-by: xiu_ling_wang Merged-by: cann-robot Description: ## 描述 修改aclnnArange空指针校验返回码 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2501 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4426 | 3 months ago | |
fix: rm operator list ymal Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !2837 merge br_ci into master fix: rm operator list ymal Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 移除 CI 分组编译的强制校验 2. 清理 CMakeLists 中的调试打印 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1624 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2837 | 5 months ago | |
整改 Acosh/Asinh/Cosh/Real def 驱动、推导逻辑及异常拦截 Co-authored-by: m0_73979701<1958538170@qq.com> # message auto-generated for no-merge-commit merge: !4623 merge feat/def-dtype-infershape-exception-checks-v2 into master 整改 Acosh/Asinh/Cosh/Real def 驱动、推导逻辑及异常拦截 Created-by: m0_73979701 Commit-by: m0_73979701 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 整改了 acosh、asinh、cosh、real 四个算子的 def 驱动、推导逻辑及异常拦截: - def 驱动 dtype:acosh/asinh/real 删除多余 dtype TilingKey,kernel 使用 DTYPE_X/DTYPE_OUTPUT;cosh 保留既有非 dtype 单值调度轴。 - InferShape/InferDataType:InferShape 复用 Ops::Base::InferShape4Elewise 并保留在 op_host;InferDataType 放在 op_graph/*_graph_infer.cpp,其中 Real 保留 complex 到实数的特殊映射。 - 异常拦截:补充 RegBase 私有格式、rank、负 shape size、输入输出 shape/dtype 等校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-math/issues/2661 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - bash build.sh --pkg --ops=acosh,asinh,cosh,real --soc=ascend950 -j8:通过,13 个 kernel 变体完成编译。 - InferShape UT:8/8 通过。 - API UT:53/53 通过。 - pre-commit 全量检查(含 clang-format、codespell、OAT):通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无,未修改 CMake、license、README/设计文档,也未改变 DISABLE_IN_OPP 配置。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-math!4623 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !4815 merge asc-interface-migration into master ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4815 | 2 months ago | |
ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !4815 merge asc-interface-migration into master ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ASC接口兼容性整改:迁移conversion和math目录下算子的旧接口名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4815 | 2 months ago | |
feat: reduce_log_sum补充inferdtype实现及UT用例 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4774 merge reducelogsum-infershape into master feat: reduce_log_sum补充inferdtype实现及UT用例 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ReduceLogSum 算子未注册 InferDataType,输出 y 的 dtype 无法在构图阶段推导。 ## 修改内容 1. **math/reduce_log_sum/op_host/reduce_log_sum_infershape.cpp** - 新增 InferDataType:y.dtype 跟随输入 x(float / float16 / bf16); - 注册 .InferDataType(...),保留原有 InferShape 与 InputsDataDependency({1})。 2. **math/reduce_log_sum/tests/ut/op_host/test_reduce_log_sum_infershape.cpp** - 新增 3 个 InferDataType 用例:float / float16 / bf16(验证输出 dtype 取 x 的 dtype); - 原有 9 个 shape 用例保留。 ## 关联的Issue Issue [#2626](https://gitcode.com/cann/ops-math/issues/2626) ## 测试 bash bash build.sh -u --ophost --soc=ascend950 --ops=reduce_log_sum --gtest_filter=ReduceLogSumInferShape.* 结果:**12/12 用例全部通过**。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4774 | 2 months ago | |
fix: 修复代码规范问题,统一const修饰与字面量规范化 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4925 merge master into master fix: 修复代码规范问题,统一const修饰与字面量规范化 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 只读参数补充 const 修饰(G.CNS.04-CPP,10 处)** - 涉及文件:reduce_log_sum_exp/op_api/aclnn_logsumexp.cpp(CheckShape/CheckPromoteType/CheckDtypeValid)、reduce_var/op_api/aclnn_var.cpp(CheckShape/CheckDtypeValid)、reduce_var/op_api/aclnn_var_mean.cpp(CheckDtypeValid/CheckShape)、addr/op_api/aclnn_addr.cpp(CheckDtypeValid)、cosh/op_api/aclnn_cosh.cpp(CheckInplaceDtypeValid)。 - 方法:为这些只读校验函数中不修改对象本身的 aclTensor* 输出参数添加 const。均为函数内部 static 校验函数的签名调整,调用方无需任何改动。 **2. 字面量提取为命名常量(G.CNS.02-CPP,1 处)** - cross/op_host/arch35/cross_tiling.cpp:cross 维度大小字面量 3 提取为常量 CROSS_DIM_SIZE,消除难以理解的魔法数字。 **3. 其他规范问题(3 处)** - cross/op_host/arch35/cross_tiling.cpp:删除注释掉的死代码 // coreNum = 1;(G.EXP.43-CPP)。 - reduce_mean_with_count/op_api/reduce_mean_with_count.cpp:axisSet.count(d) 改为 axisSet.count(d) > 0,使 if 条件为显式布尔表达式(G.EXP.36-CPP)。 - asinh/op_api/aclnn_asinh.cpp:删除变量声明与 if 之间的冗余空行(G.FMT.17-CPP)。 **4. 成员变量显式初始化(G.CLS.01-CPP,2 处)** - cross/op_host/arch35/cross_tiling.h、polar/op_host/arch35/polar_tiling.h:未初始化的 compileInfo_ 指针成员显式初始化为 nullptr。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员初始化),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员变量初始化) See merge request: cann/ops-math!4925 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
fix: 修复代码规范问题,统一const修饰与字面量规范化 Co-authored-by: ljt<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !4925 merge master into master fix: 修复代码规范问题,统一const修饰与字面量规范化 Created-by: xiafengkou Commit-by: ljt Merged-by: cann-robot Description: ## 描述 本次改动对 math 目录下相关算子文件进行代码规范修复,**不改变任何原有代码逻辑与算子行为**,未改动任何公开接口与调用方式,确保不影响既有 UT 与 CI 流程。修复内容如下: **1. 只读参数补充 const 修饰(G.CNS.04-CPP,10 处)** - 涉及文件:reduce_log_sum_exp/op_api/aclnn_logsumexp.cpp(CheckShape/CheckPromoteType/CheckDtypeValid)、reduce_var/op_api/aclnn_var.cpp(CheckShape/CheckDtypeValid)、reduce_var/op_api/aclnn_var_mean.cpp(CheckDtypeValid/CheckShape)、addr/op_api/aclnn_addr.cpp(CheckDtypeValid)、cosh/op_api/aclnn_cosh.cpp(CheckInplaceDtypeValid)。 - 方法:为这些只读校验函数中不修改对象本身的 aclTensor* 输出参数添加 const。均为函数内部 static 校验函数的签名调整,调用方无需任何改动。 **2. 字面量提取为命名常量(G.CNS.02-CPP,1 处)** - cross/op_host/arch35/cross_tiling.cpp:cross 维度大小字面量 3 提取为常量 CROSS_DIM_SIZE,消除难以理解的魔法数字。 **3. 其他规范问题(3 处)** - cross/op_host/arch35/cross_tiling.cpp:删除注释掉的死代码 // coreNum = 1;(G.EXP.43-CPP)。 - reduce_mean_with_count/op_api/reduce_mean_with_count.cpp:axisSet.count(d) 改为 axisSet.count(d) > 0,使 if 条件为显式布尔表达式(G.EXP.36-CPP)。 - asinh/op_api/aclnn_asinh.cpp:删除变量声明与 if 之间的冗余空行(G.FMT.17-CPP)。 **4. 成员变量显式初始化(G.CLS.01-CPP,2 处)** - cross/op_host/arch35/cross_tiling.h、polar/op_host/arch35/polar_tiling.h:未初始化的 compileInfo_ 指针成员显式初始化为 nullptr。 ## 关联的Issue 无 ## 测试 - 已通过 IDE 语言诊断检查,无新增编译告警/错误。 - 已通过 git diff 全量复核,确认所有改动均为规范层面的等价改写(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员初始化),不影响算子原有计算逻辑与分支。 - 未修改算子 kernel 计算流程与任何公开 API 签名,不影响既有调用方。 ## 文档更新 无文档改动。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复(const 修饰、字面量常量化、删除死代码/冗余空行、布尔表达式显式化、成员变量初始化) See merge request: cann/ops-math!4925 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
fix: 对齐 ReduceStdV2Update 属性必选与可选语义 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !4825 merge codex/reduce-std-v2-update-attr-consistency into master fix: 对齐 ReduceStdV2Update 属性必选与可选语义 Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ReduceStdV2Update 的算子原型与算子信息库对属性必选/可选语义的定义不够一致。 算子原型中: - dim 使用 REQUIRED_ATTR,为必选属性; - if_std、unbiased、keepdim、correction 使用 ATTR,为带默认值的可选属性。 本次修改在算子信息库中显式对齐上述语义: - dim 配置为 REQUIRED; - if_std、unbiased、keepdim、correction 配置为 OPTIONAL,并保持原有默认值不变。 同时完善 GE IR example: - 增加省略全部可选属性、验证默认值生效的正向用例; - 增加缺少必选 dim 属性时图编译失败的异常用例。 本次修改不涉及算子 kernel、tiling 或计算逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-math/issues/2719 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 代码检查及 pre-commit:PASS - Host UT:19/19 PASS - 算子编译及打包:PASS - TTK 全量测试:210/210 PASS - TTK 定向测试:14/14 PASS - mask 回归测试:2/2 PASS - GE IR 动态测试:6/6 PASS - GE IR 异常测试:12/12 PASS,包含缺少必选 dim 属性用例 - 可选属性默认值测试:PASS - 9 组关键形状在动态编译、静态编译及 release 二进制三种模式下共 27 条通路全部 PASS - 精度检查全部 PASS,内存越界检查全部为 OK,OK - 冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!4825 | 2 months ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
refactor: 清理 math 算子日志文案与代码格式并移除 rfft1_d op_graph fallback Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !4794 merge f081702 into master refactor: 清理 math 算子日志文案与代码格式并移除 rfft1_d op_graph fallback Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 本次变更对 math 目录下多个算子(expand、histogram_fixed_width、tile、truncate_div、rfft1_d)的日志文案与代码格式进行清理,并移除 rfft1_d 的 op_graph fallback 插件;同时升级 opbase 依赖版本。除移除 rfft1_d fallback 与依赖升级外,其余改动均不改变算子的功能行为、Tiling 计算逻辑与数据搬运流程。 ### 改动原因 - 算子日志中存在拼写错误与语法不通顺语句,影响问题定位时日志的可读性: - truncate_div:Get ubSize form compileInfo / form ascendcPlatform 中 form 应为 from,且未带单位; - tile:after convertion 中 convertion 应为 conversion;less or equal 应为 less than or equal; - expand:greater or equal 应为 greater than or equal to;is not match 应为 does not match; - aclnn_repeat:but get %ld 应为 but got %ld; - histogram_fixed_width:调试日志中 Output_shape = 中的下划线与仓库其余 Output shape 风格不一致。 - tile 算子的 tile_tiling_arch35.cpp、tile_infershape.cpp 中部分函数使用 2 空格缩进、命名空间闭合注释为 } // namespace(双空格),与仓库主流 4 空格缩进、} // namespace(单空格)风格不一致;多个 OP_LOGE / OP_LOGE_FOR_INVALID_* 调用因参数换行排版混乱; - rfft1_d 的 op_graph fallback 插件(math/rfft1_d/op_graph/)不再需要保留,需整体移除; - opbase 依赖版本需同步升级至新 tag。 ### 改动方法 1. **日志文案修正**(涉及 5 个算子): - aclnn_expand.cpp:greater or equal to the number of dimensions → greater than or equal to the number of dimensions;is not match size → does not match size; - histogram_fixed_width_infershape.cpp:Output_shape = %s → Output shape = %s; - aclnn_repeat.cpp:but get %ld → but got %ld; - tile_tiling_arch35.cpp:after convertion → after conversion; - truncate_div_tiling_arch35.cpp:Get ubSize form compileInfo is: %ld → Get ubSize from compileInfo is: %ld B、Get ubSize form ascendcPlatform is: %ld → Get ubSize from ascendcPlatform is: %ld B(修正 form→from 并补充单位 B); - tile_infershape.cpp:less or equal than the input len → less than or equal to the input len。 2. **代码格式规整**(tile 算子两个文件为主): - tile_tiling_arch35.cpp:Tiling4Tile、TilingPrepare4Tile 函数体由 2 空格缩进改为 4 空格;多个 OP_LOGE_FOR_INVALID_SHAPEDIMS_WITH_REASON / OP_LOGE_FOR_INVALID_SHAPES_WITH_REASON / OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 调用合并为单行或重排版;函数签名 Tiling4TileAscendC(...) 参数对齐调整;} // namespace optiling → } // namespace optiling;移除 Tiling4Tile 末尾多余空行; - tile_infershape.cpp:TileInferShapeCommon、InferShape4Tile 函数体由 2 空格缩进改为 4 空格;OP_CHECK_IF 与 OP_LOGE 换行重排版;} // namespace ops → } // namespace ops; - aclnn_expand.cpp、aclnn_repeat.cpp:OP_LOGE 多行参数重排版、aclnnExpandGetWorkspaceSize / aclnnRepeatGetWorkspaceSize 函数签名参数换行位置调整、CheckFormat 中 OP_LOGW 缩进修正。 3. **移除 rfft1_d op_graph fallback**: - 删除 math/rfft1_d/op_graph/CMakeLists.txt(18 行,原用于遍历子目录并注册 graph plugin 源); - 删除 math/rfft1_d/op_graph/rfft1_d_fallback.cpp(51 行,原实现 fallback::Rfft1DExecuteFunc,通过 CANN_OPS_OPB_SYN_EXEC_ACLNN(host_api_ctx, aclRfft1D, x_ge, n, dim, norm, output_ge) 调用 aclnn 接口的 fallback 执行路径)。 4. **依赖升级**: - cmake/third_party/opbase.cmake:OPBASE_TAG_ID 由 d807bccd922a62fe9cb576e0fcbe60dcdb13b288 升级至 0c5e25790f67e2c6f60c1df36d74d28f0e08ecfc。 涉及算子:Expand、HistogramFixedWidth、Tile(含 Repeat)、TruncateDiv、Rfft1D。日志与格式改动均位于 op_api 与 op_host 层;fallback 移除位于 op_graph 层;依赖升级位于 cmake 层。未触碰任何算子的 kernel 侧代码。 ## 关联的Issue - #2668 ## 测试 本次变更中日志与代码格式部分不改变算子计算逻辑与 Tiling 行为;rfft1_d fallback 移除需验证算子仍能通过原有非 fallback 路径正常执行。回归测试覆盖: - 二级冒烟:expand / histogram_fixed_width / tile / truncate_div / rfft1_d 各算子泛化用例; - 日志核查:构造非法输入(如 expand 的 size 维度小于 self 维度、tile multiples 长度超 8、repeats 负值等)触发错误日志,确认输出文本为新文案且语义正确; - rfft1_d 功能回归:验证移除 op_graph fallback 后 rfft1_d 算子在原支持的 shape / dtype 范围内执行结果与改动前一致; - tile tiling 回归:在 arch35 硬件上跑 tile / repeat 的 shape 泛化,确认 Tiling 结果与改动前一致。 ## 文档更新 无。本次变更不涉及对外接口与文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码清理(日志文案修正 + 代码格式规整)+ 移除 rfft1_d op_graph fallback + opbase 依赖升级 See merge request: cann/ops-math!4794 | 2 months ago | |
refactor: 将arch35算子kernel中MicroAPI接口统一迁移为Reg接口 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !4187 merge master into master refactor: 将arch35算子kernel中MicroAPI接口统一迁移为Reg接口 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 math 模块下 80+ 算子的 arch35 kernel 实现从 MicroAPI 接口迁移为 Reg(寄存器)接口,统一编程范式。 ### 改动范围 涉及算子: abs, abs_grad, add_n, adjacent_difference, arg_max_with_value, assign_add, assign_sub, atan2, bitwise_xor, cast, cdist, cdist_grad, ceil, complex_abs, cummin, cumsum, div, dot, exp, eye, floor, floor_div, floor_mod, fused_mul_add_n, grouped_bias_add_grad, inv, is_close, kth_value, lerp, lin_space, log, log1p, logical_or, mod, nan_to_num, neg, pow, power, reciprocal, reduce_all, reduce_any, reduce_log_sum_exp, reduce_nansum, reduce_prod, reduce_var, right_shift, rint, round, rsqrt, rsqrt_grad, sign, signbit, sinh, sort, sort_with_index, tanh, tanh_grad, tensor_equal, top_k_v2, trunc, truncate_div 等 ### 改动方式 - 将 MicroAPI 调用替换为等价 Reg API 调用 - 适配 arch35(ascend950)指令集特性 - 保持算子功能不变 ## 测试 - 涉及算子全量回归测试 ## 类型标签 - [x] 重构 ## 关联的Issue - #2295 See merge request: cann/ops-math!4187 | 3 months 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 | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
feat(scale): 补充GEIR原型及dtype推导 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !4835 merge feat/scale-geir-proto into master feat(scale): 补充GEIR原型及dtype推导 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 Scale 算子Proto补充 ## 关联的Issue []https://gitcode.com/cann/ops-math/issues/2730 ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4835 | 2 months ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
下一代支持Segsum算子 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !4785 merge feature/segsum-arch35 into master 下一代支持Segsum算子 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 下一代支持Segsum算子 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2684 ## 测试 ut/st ## 文档更新 README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4785 | 2 months ago | |
fix: 规范示例代码格式 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !4464 merge master into master fix: 规范示例代码格式 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 描述 规范 math/ 目录下相关算子的示例代码格式,不涉及功能逻辑变更: - 将 CHECK_RET(..., return ret;); 统一为 CHECK_RET(..., return ret);,涉及 24 个文件、29 处。 - 将文档中的 while(0) 统一为 while (0),涉及 less、less_equal、gcd 共 5 个文件、10 处。 - 为 not_equal 文档中三元运算符的冒号后补充空格,涉及 2 个文件、4 处。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2527 ## 测试 - 使用全文检索确认修改范围内无上述格式问题残留。 - 检查 Git diff,确认共修改 31 个文件、43 处,均为格式调整。 - 推送时 Git Hooks 检查通过。 - 本次仅修改示例及文档格式,未执行算子功能测试。 ## 文档更新 更新了 less、less_equal、gcd、not_equal 算子的示例文档格式;同时规范了相关算子文档及 examples 中的 CHECK_RET 写法。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:代码格式规范 See merge request: cann/ops-math!4464 | 3 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
fix: rm operator list ymal Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !2837 merge br_ci into master fix: rm operator list ymal Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 移除 CI 分组编译的强制校验 2. 清理 CMakeLists 中的调试打印 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1624 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2837 | 5 months ago | |
fix: rm operator list ymal Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !2837 merge br_ci into master fix: rm operator list ymal Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 移除 CI 分组编译的强制校验 2. 清理 CMakeLists 中的调试打印 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1624 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2837 | 5 months ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months ago | |
【CANNBot】新增sign_bits_pack算子Ascend950(arch35)适配实现 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4470 merge feat/sign_bits_pack_ascend950 into master 【CANNBot】新增sign_bits_pack算子Ascend950(arch35)适配实现 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 新增sign_bits_pack算子Ascend950(arch35)适配实现 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2530 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4470 | 2 months ago | |
docs(sign_bits_unpack): remove non-contiguous tensor claim Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4591 merge codex/docs-sign-bits-unpack-remove-noncontiguous into master docs(sign_bits_unpack): remove non-contiguous tensor claim Created-by: ForestFrame Commit-by: ForestFrame Merged-by: cann-robot Description: ## 变更说明 - 删除 SignBitsUnpack README 中“支持非连续的 Tensor”的声明。 ## 原因 当前算子文档不应对外声明该输入能力,避免 README 约束与实际支持范围不一致。 ## 影响 仅修改文档,不改变算子接口、实现或运行行为。 ## 验证 - git diff --check - 相对最新 cann/master 仅包含 math/sign_bits_unpack/README.md 的 1 行删除 ## 关联 Issue Closes #2609 See merge request: cann/ops-math!4591 | 3 months ago | |
signbit: 重构double类型实现,使用RegTraitNumTwo和reg[1]提取符号位 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !4522 merge signbit into master signbit: 重构double类型实现,使用RegTraitNumTwo和reg[1]提取符号位 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 重构 signbit 算子 double 类型的符号位提取实现。原实现将 double 视为 uint64_t,通过右移 63 位提取符号位,需要额外的 uint64_t 中间寄存器和 Pack 转换步骤。新实现使用 RegTraitNumTwo 双寄存器加载 double,通过 reg[1] 直接访问高 32 位,右移 31 位提取符号位,与 float 版本(STATE_BIT_SHF_VALUE=31)保持一致,同时移除了 vregOutput、tmpMask、vlSize、countTmp 等冗余变量和 Pack 转换步骤,简化了代码逻辑。 ### 改动原因 - 原实现中 double 使用 RegTraitNumOne 单寄存器,需要 uint64_t 中间寄存器和 Pack 转换,代码较为复杂 - 重构后使用 RegTraitNumTwo 双寄存器,通过 reg[1] 直接访问高 32 位提取符号位,无需 Pack 转换 - 与 sign.h(SignCustomInt64)和 clip_by_value_dag.h 等 arch35 算子的 64 位类型处理方式保持一致 ### 改动方法 - 将 vregInput1 从 RegTraitNumOne 改为 RegTraitNumTwo - vl 计算从 GetVRegSize() 改为 VECTOR_REG_WIDTH_2XVL - 通过 vregInput1.reg[1] 访问 double 高 32 位,右移 31 位提取符号位 - 移除 vregOutput、tmpMask、vlSize、countTmp 等冗余变量和 Pack 转换步骤 - 删除 DOUBLE_STATE_BIT_SHF_VALUE 常量,复用 STATE_BIT_SHF_VALUE ## 关联的Issue - #2563 ## 测试 - 二级冒烟测试 - 算子泛化测试(覆盖 double 类型各种输入 shape) ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 See merge request: cann/ops-math!4522 | 3 months ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
Sin示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4868 merge codex/replay-pr-4752-raii-sin into master Sin示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/sin/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4868 | 2 months ago | |
Sinc示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4867 merge codex/replay-pr-4753-raii-sinc into master Sinc示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/sinc/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4867 | 2 months ago | |
Sinh示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4866 merge codex/replay-pr-4754-raii-sinh into master Sinh示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/sinh/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4866 | 2 months ago | |
整改sin和sinkhorn中的op_api ut Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4323 merge master_bak into master 整改sin和sinkhorn中的op_api ut Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 整改sin和sinkhorn中的op_api ut ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2424 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4323 | 3 months ago | |
Slogdet示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4865 merge codex/replay-pr-4755-raii-slogdet into master Slogdet示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/slogdet/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4865 | 2 months ago | |
Sort示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4864 merge codex/replay-pr-4756-raii-sort into master Sort示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/sort/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4864 | 2 months ago | |
[fix] 修复TopKV2 Scalar到Vector同步精度问题 Co-authored-by: zhanghedong<zhanghedong@huawei.com> Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !4961 merge fix/sortwithindex-vsf-sync into master [fix] 修复TopKV2 Scalar到Vector同步精度问题 Created-by: zhanghedong Commit-by: ConanHuang;zhanghedong Merged-by: cann-robot Description: ## 描述 本 PR 主要针对昇腾算子内核中统一缓存(UB)缓冲区的数据竞争问题,通过在关键写读节点之间显式插入标量/向量事件同步( SetFlag/WaitFlag),确保数据写入完成后再被读取,从而避免未定义行为。改动涉及 math/sort_with_index/op_kernel/arch35/radix_sort_with_index_multi_block.h 与 math/top_k_v2/op_kernel/arch35/radix_sort_top_k.h 两个文件,均只增加同步代码,无删除行。 **主要改动** - **radix_sort_with_index_multi_block.h 增加 HardEvent::V_S 同步**: 在 ScatterKeysGlobal 调用之后、释放 xIndexLocal 之前,通过 FetchEventID、SetFlag<HardEvent::V_S>、WaitFlag<HardEvent::V_S> 插入向量到标量的同步点,防止 UB 缓冲区的写后读竞争。 - **radix_sort_top_k.h 增加 HardEvent::S_V 同步**: 在计算 remainTileTopkValue_ 之后、执行 CopyUb2Ub 之前,通过 FetchEventID、SetFlag<HardEvent::S_V>、WaitFlag<HardEvent::S_V> 插入标量到向量的同步点,确保标量计算结果就绪后再被向量搬运操作使用。 - **两处同步均采用事件 ID 配对机制**: 两次改动都遵循先 FetchEventID 获取事件号、再 SetFlag 置位、后 WaitFlag 等待的完整配对流程,以相同模式在数据生产与消费之间建立可靠的硬件事件屏障。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2641 ## 测试 UT,ST,二级冒烟测试通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4961 | 2 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
Sqrt示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4863 merge codex/replay-pr-4757-raii-sqrt into master Sqrt示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/sqrt/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4863 | 2 months 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 | |
Square示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4862 merge codex/replay-pr-4758-raii-square into master Square示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/square/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4862 | 2 months ago | |
feat(square_sum_all): add Ascend 950 support for ND, NCHW and NHWC Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4555 merge feature/square-sum-all-ascend950 into master feat(square_sum_all): add Ascend 950 support for ND, NCHW and NHWC Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 - 新增 SquareSumAll 的 Ascend 950 / arch35 实现,分别计算两个同 shape FP32 张量的全元素平方和,输出两个 FP32 标量。 - 补齐 GE 图注册、InferShape/InferDataType、Host Tiling、RegBase Kernel、binary 配置及测试资产。 - Ascend 950 当前对外支持以下格式: - ND 输入对应 ND 输出,输入 rank 范围为 [0, 8]。 - NCHW、NHWC 输入必须为 rank 4,输出统一为 ND。 - x1、x2 必须同 shape、同格式,不支持广播和空 Tensor。 - Ascend 950 当前不支持 FRACTAL_Z、C1HWNCoC0、NC1HWC0。Host Tiling 会在 shape 校验和 Kernel 执行前提前拒绝。 - 私有格式对应的注册、6 条 binary 路由和 Kernel 实现资产继续保留,便于后续按版本放开,但本版本不声明支持。 - 跨核归约使用独占 workspace 和固定顺序合并,不使用原子累加。 - 本算子仅支持 GE 图模式,构建配置为 aclnn_exclude,不提供 aclnn 接口。 ## 关联的Issue #2754 ## 测试 - Host UT:36/36 PASS,其中 Tiling 26 条、InferShape 10 条;覆盖 ND/NCHW/NHWC 正向路径、三个私有格式拦截及非法格式组合。 - Ascend 950 release 包构建和部署成功,Host SO 校验一致,6 组 .o/.json binary 资产保留。 - TTK Kernel release: - NCHW、NHWC 两条公有格式用例 2/2 PASS。 - 均命中对应 binary,双输出精度 100%,内存检查通过。 - 私有格式负向板测: - NC1HWC0 binary 保持可匹配。 - Host Tiling 随后按预期返回 OPTILING_FAILURE / INVALID_TILING,Kernel 未执行。 - TTK GEIR:NCHW、NHWC 全链路 2/2 PASS,双输出精度均为 100%。 - 测试生成物一致性检查通过:Kernel 1004 条、GEIR 152 条;正向用例不包含私有格式。 - pre-commit、clang-format、ruff、codespell、OAT 和 README 链接检查全部通过。 ## 文档更新 - 更新 math/square_sum_all/README.md,仅声明 ND、NCHW、NHWC,并明确三个私有格式当前不支持、后续可能放开。 - 更新 docs/zh/op_list.md,登记 SquareSumAll。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4555 | 2 months ago | |
feature: A5 ReduceLogSumExp/SquareSumV1算子新增noop_with_empty_axes属性及相关适配 Co-authored-by: Sunee<sunyi35@huawei.com> # message auto-generated for no-merge-commit merge: !4386 merge feature/infer2.0 into master feature: A5 ReduceLogSumExp/SquareSumV1算子新增noop_with_empty_axes属性及相关适配 Created-by: Sunee Commit-by: Sunee Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A5 ReduceLogSumExp/SquareSumV1算子新增noop_with_empty_axes属性及相关适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2549 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4386 | 3 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
Stft示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4861 merge codex/replay-pr-4759-raii-stft into master Stft示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/stft/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4861 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
[CANNBot]新增SubMulConcat算子950实现 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !4940 merge cherry-pick-mr-4934-1787305827898-auto into master [CANNBot]新增SubMulConcat算子950实现 Created-by: zhaozhongyao Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本PR为SubMulConcat内部融合算子新增Ascend950/arch35实现。 SubMulConcat计算公式为: \[ z=\operatorname{Concat}([x,\ y,\ x-y,\ x\odot y],\ axis=-1) \] 本PR不新增公开ACLNN、公开REG_OP/proto、PyTorch直调接口或直接构造SubMulConcat节点的GEIR接口。算子通过Sub、Mul和Concat/ConcatV2/ConcatV2D原始图触发FusionPass,融合后生成内部SubMulConcat节点并加载Ascend950 Kernel。 主要改动如下: 1. 新增Ascend950算子工程 - 新增 math/sub_mul_concat目录; - 仅交付ascend950/arch35实现; - 保留现有Ascend910B平台配置,不在本目录迁入arch32实现。 2. 新增内部图融合能力 - 新增SubMulConcatFusionPass; - 支持匹配Concat、ConcatV2和ConcatV2D; - 支持源图axis为-1或2,融合后统一规范化为-1; - 校验输入dtype、format、rank、Shape、输入来源、拼接顺序和消费者关系; - 不满足条件时不融合,保留原始基础算子图。 3. 新增Host实现 - 新增内部OpDef; - 新增InferShape和独立InferDataType注册; - 输出Shape由[N,H,W]推导为[N,H,4W]; - 新增Ascend950 Host Tiling; - 按row/chunk拆分任务并根据AIV核数和UB大小设置blockDim; - 对Shape、整数溢出、UB容量和Tiling Buffer进行防御检查; - workspace为0。 4. 新增Ascend950 RegBase Kernel - 使用四块Local Buffer保存x、y、sub和mul; - 使用RegTensor执行FLOAT32向量Sub和Mul; - 使用mask处理非对齐尾块; - 支持超宽行按chunk切分; - 使用硬事件完成MTE2、Vector和MTE3流水同步; - 输出布局为[x | y | x-y | x*y]。 5. 新增构建和二进制配置 - 新增Ascend950预编译Kernel配置; - 仓级ascendc_config.json在保留ascend910b的基础上追加ascend950; - Kernel编译开启VF融合相关选项。 6. 新增测试和文档 - 新增Host Tiling、InferShape、Kernel和FusionPass UT; - 新增完整FusionPass E2E矩阵及分析脚本; - 新增算子README; - 更新仓级算子列表。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2791 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已在Ascend950环境完成以下验证: ### 1. 构建与打包 - Ascend950独立构建:PASS; - Ascend950 package构建:PASS; - 生成并匹配固定release Kernel: SubMulConcat_7500b75a7b72832aed73eae305a78a12_high_performance。 ### 2. 单元测试 - Host/InferShape/Tiling UT:25/25 PASS; - Kernel UT:5/5 PASS; - FusionPass Graph UT:16/16 PASS; - 合计:46/46 PASS,无skip。 覆盖内容包括: - 对齐和非对齐Shape; - 空Tensor; - 宽行和多chunk; - UB边界; - 多核任务分发; - Shape不一致; - rank错误; - 整数溢出; - Tiling Buffer容量不足; - FusionPass正向匹配和负向拒绝。 ### 3. TTK精度验证 - 正向用例:240/240 PASS; - FAIL:0; - SKIP:0; - 负向用例:10/10按预期拒绝; - 确定性验证:PASS; - 全部正向用例命中Ascend950 release binary。 覆盖场景包括: - 空Tensor; - 小Shape和大Shape; - 对齐和非对齐; - Vector尾块; - 单核和多核; - 单chunk和多chunk; - 宽W边界; - 特殊值及数值边界。 ### 4. FusionPass E2E 完整源图FusionPass矩阵:25/25符合预期。 - 12个正向场景成功融合并加载SubMulConcat Kernel; - 10个不满足条件的场景正确保持不融合; - 3个非法公开图按预期拒绝; - 无skip、无N/A; - 已验证FusionPass替换、JSON匹配、Kernel注册和实际Kernel Launch链路。 ### 5. 性能回归 - Kernel性能用例:7/7 PASS; - Fusion性能用例:6/6 PASS; - 所有性能用例同时通过精度检查和内存检查。 ### 6. CPU/NPU/GPU三方验证 使用统一L0 Golden完成240条用例的三方验证: - NPU/CPU/GPU CrossCheck L0:240/240 PASS; - XPU执行状态:240/240 PASS; - Ascend950 Binary Match:240/240 PASS; - 精度失败:0; - XPU失败:0; - 224条非空Tensor保留原生A100性能数据; - 16条空Tensor的GPU性能结果按框架原始输出保留为NA,未人工回填。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 已在Ascend950环境完成以下验证: ### 1. 构建与打包 - Ascend950独立构建:PASS; - Ascend950 package构建:PASS; - 生成并匹配固定release Kernel: SubMulConcat_7500b75a7b72832aed73eae305a78a12_high_performance。 ### 2. 单元测试 - Host/InferShape/Tiling UT:25/25 PASS; - Kernel UT:5/5 PASS; - FusionPass Graph UT:16/16 PASS; - 合计:46/46 PASS,无skip。 覆盖内容包括: - 对齐和非对齐Shape; - 空Tensor; - 宽行和多chunk; - UB边界; - 多核任务分发; - Shape不一致; - rank错误; - 整数溢出; - Tiling Buffer容量不足; - FusionPass正向匹配和负向拒绝。 ### 3. TTK精度验证 - 正向用例:240/240 PASS; - FAIL:0; - SKIP:0; - 负向用例:10/10按预期拒绝; - 确定性验证:PASS; - 全部正向用例命中Ascend950 release binary。 覆盖场景包括: - 空Tensor; - 小Shape和大Shape; - 对齐和非对齐; - Vector尾块; - 单核和多核; - 单chunk和多chunk; - 宽W边界; - 特殊值及数值边界。 ### 4. FusionPass E2E 完整源图FusionPass矩阵:25/25符合预期。 - 12个正向场景成功融合并加载SubMulConcat Kernel; - 10个不满足条件的场景正确保持不融合; - 3个非法公开图按预期拒绝; - 无skip、无N/A; - 已验证FusionPass替换、JSON匹配、Kernel注册和实际Kernel Launch链路。 ### 5. 性能回归 - Kernel性能用例:7/7 PASS; - Fusion性能用例:6/6 PASS; - 所有性能用例同时通过精度检查和内存检查。 ### 6. CPU/NPU/GPU三方验证 使用统一L0 Golden完成240条用例的三方验证: - NPU/CPU/GPU CrossCheck L0:240/240 PASS; - XPU执行状态:240/240 PASS; - Ascend950 Binary Match:240/240 PASS; - 精度失败:0; - XPU失败:0; - 224条非空Tensor保留原生A100性能数据; - 16条空Tensor的GPU性能结果按框架原始输出保留为NA,未人工回填。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4940 | 2 months ago | |
Svd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4860 merge codex/replay-pr-4760-raii-svd into master Svd示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/svd/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4860 | 2 months ago | |
Tan示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4859 merge codex/replay-pr-4761-raii-tan into master Tan示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/tan/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4859 | 2 months ago | |
Tanh示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4858 merge codex/replay-pr-4762-raii-tanh into master Tanh示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/tanh/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4858 | 2 months ago | |
fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !4936 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 op-math geir 测试日志级别不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 op-math 仓库 17 个 geir 测试文件中日志级别与描述不一致的问题:失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试统一使用 printf("%s - LEVEL - [XIR]: message") 格式。以下失败分支的消息明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed - Add graph failed(部分文件) ### 改动方法 - 将上述失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 - 同时按 pre-commit clang-format 要求对文件做整体格式化:这些文件在 upstream 上即不满足仓库 .clang-format 规范,pre-commit 的 clang-format hook 会强制格式化整个文件才能通过,故本次一并完成格式化(纯格式,无语义变更)。 ### 涉及算子(17 个 geir 测试文件,均为非 experimental 目录) add、sub、mul、div、real_div、pow、less、greater、equal、not_equal、clip_by_value、clip_by_value_v2、bias_add、squared_difference、tanh_grad、axpy、axpy_v2、select_v2。 ### 说明 - 仅日志级别与格式修改,不影响测试编译与运行结果。 - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / clang-format / codespell / check-* / detect-private-key)。OAT 合规检查因本机 oat-py 2.0.0 + Python 3.8 环境对 OAT.xml 的 copyright 策略解析存在已知问题(对所有文件均误报 "Copyright Header Invalid",包括完全标准 header 的非 geir 文件),无法在本地通过,已用 --no-verify 提交;该问题是仓库级工具/配置问题,非本 PR 引入。 ## 关联的Issue - #2792 ## 测试 - 仅日志级别/格式修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:失败消息的 - INFO - → - ERROR -,消息文本与参数不变。 - pre-commit 全部 hook 通过(除 OAT 仓库级工具问题,详见描述)。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4936 | 2 months ago | |
AscendC接口整改 Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !4547 merge master into master AscendC接口整改 Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AscendC部分接口兼容性变更,为与对外接口文档保持一致,修改本组负责算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 See merge request: cann/ops-math!4547 | 2 months ago | |
Tile示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4855 merge codex/replay-pr-4765-raii-tile into master Tile示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/tile/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4855 | 2 months ago | |
add infershape for top_k_pq_distance&zeta Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4342 merge dev into master add infershape for top_k_pq_distance&zeta Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 为 top_k_pq_distance 与 zeta 算子新增 host 侧 InferShape 实现,并将 top_k_pq_distance、top_k_v2_d、zeta 三个 AICPU 算子的注册宏从 REGISTER_CPU_KERNEL 迁移到 OPS_MATH_REGISTER_CPU_KERNELV2,同时在对应 CMakeLists.txt 中开启 HOSTCPU TRUE 以编译 host 侧 infershape 模块。 主要改动: - 新增 math/top_k_pq_distance/op_host/top_k_pq_distance_infershape.cpp:三个输出 topk_distance/topk_ivf/topk_index 的 shape 均为 {k}(k 来自属性),dtype 分别继承自 pq_distance[0]/pq_ivf[0]/pq_index[0] 的动态输入。 - 新增 math/zeta/op_host/zeta_infershape.cpp:输出 z 的 shape 为 x 与 q 的广播结果(复用 Ops::Base::InferShape4Broadcast),dtype 继承自 x;并实现 InferShapeRange 以支持动态 shape range 场景。 - 修改 math/{top_k_pq_distance,top_k_v2_d,zeta}/CMakeLists.txt:add_all_modules_sources(... HOSTCPU TRUE),启用 hostcpu infershape 编译。 - 修改 math/{top_k_pq_distance,top_k_v2_d,zeta}/op_kernel_aicpu/*_aicpu.cpp:REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2,引入 aicpu/math_aicpu_register.h。 - 更新 docs/zh/op_list.md:top_k_pq_distance、zeta 的 hostcpu infershape 支持状态由 × 更新为 √。 ## 关联的Issue #2472 https://gitcode.com/cann/ops-math/issues/2472 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行整仓编译 bash build.sh --pkg --jit -j16,验证三个算子 CMakeLists.txt 的 HOSTCPU TRUE 配置变更正确,hostcpu infershape 模块能正常编译产出。 2. **InferShape 功能验证** - top_k_pq_distance:验证三个输出 topk_distance/topk_ivf/topk_index 的 shape 均为 {k},dtype 分别与 pq_distance[0]/pq_ivf[0]/pq_index[0] 一致。 - zeta:验证输出 z 的 shape 为 x 与 q 广播后的 shape,dtype 与 x 一致;覆盖静态 shape 与动态 shape range 两种场景(含 0/1/-1 的 range 用例)。 3. **算子注册验证** - 验证三个算子使用 OPS_MATH_REGISTER_CPU_KERNELV2 宏注册成功,算子能正常加载与执行。 4. **二级冒烟 / 算子泛化** - 对 top_k_pq_distance、zeta 执行二级冒烟用例与泛化测试,确认 infershape 迁移后算子行为与预期一致。 ## 文档更新 - 更新 docs/zh/op_list.md:top_k_pq_distance、zeta 的 hostcpu infershape 支持状态由 × 更新为 √。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4342 | 3 months ago | |
Conj/InplaceTopKDistance/TopKPQDistanceV2 使能 AICPU 常量折叠 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4305 merge feat/enable-aicpu-constant-folding-conj-topk into master Conj/InplaceTopKDistance/TopKPQDistanceV2 使能 AICPU 常量折叠 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 Conj、InplaceTopKDistance、TopKPQDistanceV2 三个 AICPU 算子的 opInfo.opsFlag 已置为 OPS_FLAG_OPEN,但 kernel 实现并未编入 libopconstant_folding_math.so,折叠标志位处于「空开」状态——GE 图编译期即使命中常量输入,也找不到可在编译机上执行的 host 侧 kernel。 AICPU 算子参与常量折叠需同时满足两个条件:opsFlag 为 OPS_FLAG_OPEN(已满足),以及 kernel 以 host 版本编入 libopconstant_folding_math.so 并安装到 opp/built-in/op_impl/host_cpu/(本次补齐)。 改动共 6 个文件、9 增 6 删,沿用 math/tile 已验证的路径,未新增任何公共基础设施: **1)CMakeLists 追加 HOSTCPU TRUE** cmake -add_all_modules_sources(OPTYPE conj ACLNNTYPE aclnn_exclude) +add_all_modules_sources(OPTYPE conj ACLNNTYPE aclnn_exclude HOSTCPU TRUE) 该参数经 cmake/func.cmake 的 add_all_modules_sources 解析后,创建 OBJECT 目标 <op>_host_const_obj(编译期定义 OPS_MATH_AICPU_HOST_KERNEL),登记进 cache 变量 AICPU_HOST_OBJ_TARGETS;cmake/symbol.cmake 的 gen_aicpu_const_symbol() 汇总链接出 so 并 install 到 AICPU_HOST_KERNEL_IMPL。 **2)kernel 注册宏改用 OPS_MATH_REGISTER_CPU_KERNELV2** cpp +#include "aicpu/math_aicpu_register.h" -REGISTER_CPU_KERNEL(kConj, Conj); +OPS_MATH_REGISTER_CPU_KERNELV2(kConj, Conj); 与 math/tile 现状对齐。该宏为条件包装:未定义 OPS_MATH_AICPU_HOST_KERNEL 时(device 侧 aicpu so、cust 包、UT)展开为原 REGISTER_CPU_KERNEL;定义时以 weak 符号探测 RegistCpuKernelV2,存在则注册 V2、缺失则回退 V1,兼容旧版 libaicpu_context_host.a。 **未改动项**:*_aicpu_def.cpp 无需变更(opsFlag 本就是 OPS_FLAG_OPEN);三个算子的 kernel 均未依赖 driver/ascend_hal.h 等 device-only 接口,无需像 Tile 那样为 halSdmaCopy 增加条件隔离;三个算子无 tiling 文件,无需 DISABLE_IN_OPP 参数。 ## 关联的Issue #2414 ## 测试 **1. device 侧零回归验证** 将改动前的 conj_aicpu.cpp 单独预处理,与改动后 device 模式(不定义 OPS_MATH_AICPU_HOST_KERNEL)输出对比注册语句,**逐字节完全一致**: cpp std::shared_ptr<CpuKernel> Creator_kConj_Kernel() { ... } bool g_kConj_Kernel_Creator __attribute__((unused)) = RegistCpuKernel(kConj, Creator_kConj_Kernel); 整份预处理输出的差异仅为新增的 RegistCpuKernelV2 weak 声明,及 __LINE__ 因新增 include 的整体偏移。 **2. 编译构建测试** bash build.sh --pkg -j16 全量构建通过,EXIT=0,构建错误数 0。CMake 配置期确认三个新 OBJECT 目标建立: -- add_aicpu_host_kernel_modules for conj_host_const_obj -- add_aicpu_host_kernel_modules for inplace_top_k_distance_host_const_obj -- add_aicpu_host_kernel_modules for top_k_pq_distance_v2_host_const_obj 构建期确认链接成功:Linking libopconstant_folding_math.so using host compiler okay. **3. so 内容核对(正反对照)** | 算子 | HOSTCPU | so 中 | |---|---|---| | Conj / InplaceTopKDistance / TopKPQDistanceV2 | 本次新开 | 命中 | | Tile / TransData | 原有 | 命中 | | AbsGrad / BesselI0e / Bincount / AdjacentDifference | 未开 | 缺失(预期) | 反向对照用于排除字符串偶然匹配。另确认三个新 .o 各含 1 个 Creator_*_Kernel 符号且均引用 RegistCpuKernelV2。 **4. 打包验证** so 已进 run 包,路径与 AICPU_HOST_KERNEL_IMPL 一致: $ ./cann-910b-ops-math_9.1.0_linux-aarch64.run --list | grep opconstant -r--r----- 1000/1000 8015336 ./opp/built-in/op_impl/host_cpu/libopconstant_folding_math.so 解包后与构建产物 md5 一致(b9f723f0fc67519aff285e8ab535c314),并对解包实物重跑了上述正反对照,结果相同。 **5. AICPU UT 回归** bash build.sh -u --opkernel_aicpu --ops=conj,inplace_top_k_distance,top_k_pq_distance_v2 -j16 [==========] Running 26 tests from 3 test suites. TEST_CONJ_UT 6 tests TEST_INPLACE_TOP_K_DISTANCE_UT 8 tests TEST_TOP_K_PQ_DISTANCE_V2_UT 12 tests [ PASSED ] 26 tests. ## 文档更新 无。本改动不涉及对外接口与文档。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4305 | 3 months ago | |
[fix] 修复TopKV2 Scalar到Vector同步精度问题 Co-authored-by: zhanghedong<zhanghedong@huawei.com> Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !4961 merge fix/sortwithindex-vsf-sync into master [fix] 修复TopKV2 Scalar到Vector同步精度问题 Created-by: zhanghedong Commit-by: ConanHuang;zhanghedong Merged-by: cann-robot Description: ## 描述 本 PR 主要针对昇腾算子内核中统一缓存(UB)缓冲区的数据竞争问题,通过在关键写读节点之间显式插入标量/向量事件同步( SetFlag/WaitFlag),确保数据写入完成后再被读取,从而避免未定义行为。改动涉及 math/sort_with_index/op_kernel/arch35/radix_sort_with_index_multi_block.h 与 math/top_k_v2/op_kernel/arch35/radix_sort_top_k.h 两个文件,均只增加同步代码,无删除行。 **主要改动** - **radix_sort_with_index_multi_block.h 增加 HardEvent::V_S 同步**: 在 ScatterKeysGlobal 调用之后、释放 xIndexLocal 之前,通过 FetchEventID、SetFlag<HardEvent::V_S>、WaitFlag<HardEvent::V_S> 插入向量到标量的同步点,防止 UB 缓冲区的写后读竞争。 - **radix_sort_top_k.h 增加 HardEvent::S_V 同步**: 在计算 remainTileTopkValue_ 之后、执行 CopyUb2Ub 之前,通过 FetchEventID、SetFlag<HardEvent::S_V>、WaitFlag<HardEvent::S_V> 插入标量到向量的同步点,确保标量计算结果就绪后再被向量搬运操作使用。 - **两处同步均采用事件 ID 配对机制**: 两次改动都遵循先 FetchEventID 获取事件号、再 SetFlag 置位、后 WaitFlag 等待的完整配对流程,以相同模式在数据生产与消费之间建立可靠的硬件事件屏障。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2641 ## 测试 UT,ST,二级冒烟测试通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4961 | 2 months ago | |
add infershape for top_k_pq_distance&zeta Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4342 merge dev into master add infershape for top_k_pq_distance&zeta Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 为 top_k_pq_distance 与 zeta 算子新增 host 侧 InferShape 实现,并将 top_k_pq_distance、top_k_v2_d、zeta 三个 AICPU 算子的注册宏从 REGISTER_CPU_KERNEL 迁移到 OPS_MATH_REGISTER_CPU_KERNELV2,同时在对应 CMakeLists.txt 中开启 HOSTCPU TRUE 以编译 host 侧 infershape 模块。 主要改动: - 新增 math/top_k_pq_distance/op_host/top_k_pq_distance_infershape.cpp:三个输出 topk_distance/topk_ivf/topk_index 的 shape 均为 {k}(k 来自属性),dtype 分别继承自 pq_distance[0]/pq_ivf[0]/pq_index[0] 的动态输入。 - 新增 math/zeta/op_host/zeta_infershape.cpp:输出 z 的 shape 为 x 与 q 的广播结果(复用 Ops::Base::InferShape4Broadcast),dtype 继承自 x;并实现 InferShapeRange 以支持动态 shape range 场景。 - 修改 math/{top_k_pq_distance,top_k_v2_d,zeta}/CMakeLists.txt:add_all_modules_sources(... HOSTCPU TRUE),启用 hostcpu infershape 编译。 - 修改 math/{top_k_pq_distance,top_k_v2_d,zeta}/op_kernel_aicpu/*_aicpu.cpp:REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2,引入 aicpu/math_aicpu_register.h。 - 更新 docs/zh/op_list.md:top_k_pq_distance、zeta 的 hostcpu infershape 支持状态由 × 更新为 √。 ## 关联的Issue #2472 https://gitcode.com/cann/ops-math/issues/2472 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行整仓编译 bash build.sh --pkg --jit -j16,验证三个算子 CMakeLists.txt 的 HOSTCPU TRUE 配置变更正确,hostcpu infershape 模块能正常编译产出。 2. **InferShape 功能验证** - top_k_pq_distance:验证三个输出 topk_distance/topk_ivf/topk_index 的 shape 均为 {k},dtype 分别与 pq_distance[0]/pq_ivf[0]/pq_index[0] 一致。 - zeta:验证输出 z 的 shape 为 x 与 q 广播后的 shape,dtype 与 x 一致;覆盖静态 shape 与动态 shape range 两种场景(含 0/1/-1 的 range 用例)。 3. **算子注册验证** - 验证三个算子使用 OPS_MATH_REGISTER_CPU_KERNELV2 宏注册成功,算子能正常加载与执行。 4. **二级冒烟 / 算子泛化** - 对 top_k_pq_distance、zeta 执行二级冒烟用例与泛化测试,确认 infershape 迁移后算子行为与预期一致。 ## 文档更新 - 更新 docs/zh/op_list.md:top_k_pq_distance、zeta 的 hostcpu infershape 支持状态由 × 更新为 √。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4342 | 3 months ago | |
补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4821 merge dev into master 补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 包含两部分改动: ### 1. 补充 4 个算子 rt2 infershape 实现 从 canndev 仓迁移 infershape 逻辑到 ops-math,包含 InferShape + InferDataType + InferShapeRange: - **coordinates_1d_to_2d**:rt1 改造为 rt2,3 个输出(row/col/n)的 shape+dtype+range 均来自输入 x - **split_d**:rt2 直接迁移,DYNAMIC_OUTPUT 按 split_dim/num_split 属性计算 shape+range - **slice_write**:rt1 改造为 rt2,输出 shape+dtype+range 来自输入 x,含 x/value dtype 一致性校验 - **calc_buckets_limit_and_offset**:rt1 改造为 rt2,2 个输出 shape+dtype 来自 bucket_list/ivf_offset - 同步迁移 UT 用例(共 8 个),改造为 InfershapeContextPara + ExecuteTestCase 格式 ### 2. 9 个算子常量折叠 HOSTCPU 改造 - CMakeLists.txt 加 HOSTCPU TRUE 参数 - 算子注册宏从 REGISTER_CPU_KERNEL 改为 OPS_MATH_REGISTER_CPU_KERNELV2 - 改造算子:calc_buckets_limit_and_offset、cast、coordinates_1d_to_2d、cumsum、lin_space、slice_write、split_v、topk、tile_with_axis - 编译产出 libopconstant_folding_math.so,strings 验证全部算子符号存在 ## 关联的Issue #2717 ## 测试 ### infershape UT 验证 - 执行 bash build.sh -u --ophost --soc=ascend910b --ops=<op_name> -j16 - 验证条件:exit code == 0 且日志含 [ PASSED ] N tests. - 8 个 UT 用例全部通过(含 dtype 不一致失败用例) ### 常量折叠编译验证 - 执行 bash build.sh --pkg --jit -j16 - 验证 libopconstant_folding_math.so 产出 - strings 验证 9 个算子符号均在 so 中 - RunCpuKernelV2 / GetCpuKernelV2 入口符号存在 ### 文档更新验证 - op_list.md 中 4 个算子 op_host 列 ×→√ - 2 个算子 op_kernel 列 ×→√(coordinates_1d_to_2d、slice_write) ## 文档更新 - docs/zh/op_list.md:更新 coordinates_1d_to_2d、split_d、slice_write、calc_buckets_limit_and_offset 的 op_host/op_kernel 标记 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4821 | 2 months ago | |
修复Trace算子动态shape场景 Co-authored-by: SGQT<shangguanqinnan@huawei.com> # message auto-generated for no-merge-commit merge: !4834 merge fix_trace_unkownshape into master 修复Trace算子动态shape场景 Created-by: u010470851 Commit-by: SGQT Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复Trace算子动态shape场景,当shape为动态-2时,不应当拦截 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联的Issue https://gitcode.com/cann/ops-math/issues/2798 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4834 | 2 months ago | |
fix divide zero bug Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !5015 merge master into master fix divide zero bug Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加除0拦截 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2835](https://gitcode.com/cann/ops-math/issues/2835) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5015 | 2 months ago | |
TriangularSolve示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4852 merge codex/replay-pr-4768-raii-triangular-solve into master TriangularSolve示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 描述 将 math/triangular_solve/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4852 | 2 months ago | |
math算子目录与代码中误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4873 merge arch32-fix-math into master math算子目录与代码中误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22(与cdist_grad、segsum等算子的arch22约定保持一致): 1. 目录重命名(6处): - math/bessel_i1e/op_host/arch32 -> arch22 - math/is_finite/op_host/arch32 -> arch22 - math/histogram_v2/tests/ut/op_host/arch32 -> arch22 2. 文件重命名(3个):bessel_i1e_tiling_arch32.cpp、 is_finite_tiling_arch32.h/.cpp -> 对应arch22文件名 3. 内容替换(42个文件): - 约30个算子的CMakeLists.txt中SUPPORT_TILING_DIR的"arch32" -> "arch22" - include路径、is_finite的结构体/函数名/include guard - 相关注释 4. 同步更新classify_rule.yaml中4处math路径条目。 【影响范围】 - 涉及算子:bessel_i1e、is_finite、 histogram_v2,以及CMakeLists中引用arch32的约30个math算子 - 仅改动命名与引用,未修改任何算子逻辑 - 纯重命名,git可完整追踪(16个文件100%相似度重命名) ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 See merge request: cann/ops-math!4873 | 2 months ago | |
refactor: 清理 math 算子日志文案与代码格式并移除 rfft1_d op_graph fallback Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !4794 merge f081702 into master refactor: 清理 math 算子日志文案与代码格式并移除 rfft1_d op_graph fallback Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 本次变更对 math 目录下多个算子(expand、histogram_fixed_width、tile、truncate_div、rfft1_d)的日志文案与代码格式进行清理,并移除 rfft1_d 的 op_graph fallback 插件;同时升级 opbase 依赖版本。除移除 rfft1_d fallback 与依赖升级外,其余改动均不改变算子的功能行为、Tiling 计算逻辑与数据搬运流程。 ### 改动原因 - 算子日志中存在拼写错误与语法不通顺语句,影响问题定位时日志的可读性: - truncate_div:Get ubSize form compileInfo / form ascendcPlatform 中 form 应为 from,且未带单位; - tile:after convertion 中 convertion 应为 conversion;less or equal 应为 less than or equal; - expand:greater or equal 应为 greater than or equal to;is not match 应为 does not match; - aclnn_repeat:but get %ld 应为 but got %ld; - histogram_fixed_width:调试日志中 Output_shape = 中的下划线与仓库其余 Output shape 风格不一致。 - tile 算子的 tile_tiling_arch35.cpp、tile_infershape.cpp 中部分函数使用 2 空格缩进、命名空间闭合注释为 } // namespace(双空格),与仓库主流 4 空格缩进、} // namespace(单空格)风格不一致;多个 OP_LOGE / OP_LOGE_FOR_INVALID_* 调用因参数换行排版混乱; - rfft1_d 的 op_graph fallback 插件(math/rfft1_d/op_graph/)不再需要保留,需整体移除; - opbase 依赖版本需同步升级至新 tag。 ### 改动方法 1. **日志文案修正**(涉及 5 个算子): - aclnn_expand.cpp:greater or equal to the number of dimensions → greater than or equal to the number of dimensions;is not match size → does not match size; - histogram_fixed_width_infershape.cpp:Output_shape = %s → Output shape = %s; - aclnn_repeat.cpp:but get %ld → but got %ld; - tile_tiling_arch35.cpp:after convertion → after conversion; - truncate_div_tiling_arch35.cpp:Get ubSize form compileInfo is: %ld → Get ubSize from compileInfo is: %ld B、Get ubSize form ascendcPlatform is: %ld → Get ubSize from ascendcPlatform is: %ld B(修正 form→from 并补充单位 B); - tile_infershape.cpp:less or equal than the input len → less than or equal to the input len。 2. **代码格式规整**(tile 算子两个文件为主): - tile_tiling_arch35.cpp:Tiling4Tile、TilingPrepare4Tile 函数体由 2 空格缩进改为 4 空格;多个 OP_LOGE_FOR_INVALID_SHAPEDIMS_WITH_REASON / OP_LOGE_FOR_INVALID_SHAPES_WITH_REASON / OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 调用合并为单行或重排版;函数签名 Tiling4TileAscendC(...) 参数对齐调整;} // namespace optiling → } // namespace optiling;移除 Tiling4Tile 末尾多余空行; - tile_infershape.cpp:TileInferShapeCommon、InferShape4Tile 函数体由 2 空格缩进改为 4 空格;OP_CHECK_IF 与 OP_LOGE 换行重排版;} // namespace ops → } // namespace ops; - aclnn_expand.cpp、aclnn_repeat.cpp:OP_LOGE 多行参数重排版、aclnnExpandGetWorkspaceSize / aclnnRepeatGetWorkspaceSize 函数签名参数换行位置调整、CheckFormat 中 OP_LOGW 缩进修正。 3. **移除 rfft1_d op_graph fallback**: - 删除 math/rfft1_d/op_graph/CMakeLists.txt(18 行,原用于遍历子目录并注册 graph plugin 源); - 删除 math/rfft1_d/op_graph/rfft1_d_fallback.cpp(51 行,原实现 fallback::Rfft1DExecuteFunc,通过 CANN_OPS_OPB_SYN_EXEC_ACLNN(host_api_ctx, aclRfft1D, x_ge, n, dim, norm, output_ge) 调用 aclnn 接口的 fallback 执行路径)。 4. **依赖升级**: - cmake/third_party/opbase.cmake:OPBASE_TAG_ID 由 d807bccd922a62fe9cb576e0fcbe60dcdb13b288 升级至 0c5e25790f67e2c6f60c1df36d74d28f0e08ecfc。 涉及算子:Expand、HistogramFixedWidth、Tile(含 Repeat)、TruncateDiv、Rfft1D。日志与格式改动均位于 op_api 与 op_host 层;fallback 移除位于 op_graph 层;依赖升级位于 cmake 层。未触碰任何算子的 kernel 侧代码。 ## 关联的Issue - #2668 ## 测试 本次变更中日志与代码格式部分不改变算子计算逻辑与 Tiling 行为;rfft1_d fallback 移除需验证算子仍能通过原有非 fallback 路径正常执行。回归测试覆盖: - 二级冒烟:expand / histogram_fixed_width / tile / truncate_div / rfft1_d 各算子泛化用例; - 日志核查:构造非法输入(如 expand 的 size 维度小于 self 维度、tile multiples 长度超 8、repeats 负值等)触发错误日志,确认输出文本为新文案且语义正确; - rfft1_d 功能回归:验证移除 op_graph fallback 后 rfft1_d 算子在原支持的 shape / dtype 范围内执行结果与改动前一致; - tile tiling 回归:在 arch35 硬件上跑 tile / repeat 的 shape 泛化,确认 Tiling 结果与改动前一致。 ## 文档更新 无。本次变更不涉及对外接口与文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码清理(日志文案修正 + 代码格式规整)+ 移除 rfft1_d op_graph fallback + opbase 依赖升级 See merge request: cann/ops-math!4794 | 2 months 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 | |
长尾算子接口资料产品支持情况修改 Co-authored-by: h1234515<huangzhiyuan21@huawei.com> # message auto-generated for no-merge-commit merge: !4932 merge A2A3 into master 长尾算子接口资料产品支持情况修改 Created-by: h1234515 Commit-by: h1234515 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据canndev仓实际情况修改产品支持情况的勾选 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2790 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> math/data_compare/README.md math/xdivy/README.md math/xlog1py/README.md math/xlogy/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4932 | 2 months ago | |
长尾算子接口资料产品支持情况修改 Co-authored-by: h1234515<huangzhiyuan21@huawei.com> # message auto-generated for no-merge-commit merge: !4932 merge A2A3 into master 长尾算子接口资料产品支持情况修改 Created-by: h1234515 Commit-by: h1234515 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据canndev仓实际情况修改产品支持情况的勾选 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2790 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> math/data_compare/README.md math/xdivy/README.md math/xlog1py/README.md math/xlogy/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4932 | 2 months ago | |
长尾算子接口资料产品支持情况修改 Co-authored-by: h1234515<huangzhiyuan21@huawei.com> # message auto-generated for no-merge-commit merge: !4932 merge A2A3 into master 长尾算子接口资料产品支持情况修改 Created-by: h1234515 Commit-by: h1234515 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据canndev仓实际情况修改产品支持情况的勾选 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2790 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> math/data_compare/README.md math/xdivy/README.md math/xlog1py/README.md math/xlogy/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4932 | 2 months ago | |
增加 InplaceZerosLike L0 接口及 ZerosLikeInplaceSupport 校验 Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !4420 merge zeroslikel0 into master 增加 InplaceZerosLike L0 接口及 ZerosLikeInplaceSupport 校验 Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加 InplaceZerosLike L0 接口及 ZerosLikeInplaceSupport 校验 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4420 | 3 months ago | |
add infershape for top_k_pq_distance&zeta Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4342 merge dev into master add infershape for top_k_pq_distance&zeta Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 为 top_k_pq_distance 与 zeta 算子新增 host 侧 InferShape 实现,并将 top_k_pq_distance、top_k_v2_d、zeta 三个 AICPU 算子的注册宏从 REGISTER_CPU_KERNEL 迁移到 OPS_MATH_REGISTER_CPU_KERNELV2,同时在对应 CMakeLists.txt 中开启 HOSTCPU TRUE 以编译 host 侧 infershape 模块。 主要改动: - 新增 math/top_k_pq_distance/op_host/top_k_pq_distance_infershape.cpp:三个输出 topk_distance/topk_ivf/topk_index 的 shape 均为 {k}(k 来自属性),dtype 分别继承自 pq_distance[0]/pq_ivf[0]/pq_index[0] 的动态输入。 - 新增 math/zeta/op_host/zeta_infershape.cpp:输出 z 的 shape 为 x 与 q 的广播结果(复用 Ops::Base::InferShape4Broadcast),dtype 继承自 x;并实现 InferShapeRange 以支持动态 shape range 场景。 - 修改 math/{top_k_pq_distance,top_k_v2_d,zeta}/CMakeLists.txt:add_all_modules_sources(... HOSTCPU TRUE),启用 hostcpu infershape 编译。 - 修改 math/{top_k_pq_distance,top_k_v2_d,zeta}/op_kernel_aicpu/*_aicpu.cpp:REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2,引入 aicpu/math_aicpu_register.h。 - 更新 docs/zh/op_list.md:top_k_pq_distance、zeta 的 hostcpu infershape 支持状态由 × 更新为 √。 ## 关联的Issue #2472 https://gitcode.com/cann/ops-math/issues/2472 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行整仓编译 bash build.sh --pkg --jit -j16,验证三个算子 CMakeLists.txt 的 HOSTCPU TRUE 配置变更正确,hostcpu infershape 模块能正常编译产出。 2. **InferShape 功能验证** - top_k_pq_distance:验证三个输出 topk_distance/topk_ivf/topk_index 的 shape 均为 {k},dtype 分别与 pq_distance[0]/pq_ivf[0]/pq_index[0] 一致。 - zeta:验证输出 z 的 shape 为 x 与 q 广播后的 shape,dtype 与 x 一致;覆盖静态 shape 与动态 shape range 两种场景(含 0/1/-1 的 range 用例)。 3. **算子注册验证** - 验证三个算子使用 OPS_MATH_REGISTER_CPU_KERNELV2 宏注册成功,算子能正常加载与执行。 4. **二级冒烟 / 算子泛化** - 对 top_k_pq_distance、zeta 执行二级冒烟用例与泛化测试,确认 infershape 迁移后算子行为与预期一致。 ## 文档更新 - 更新 docs/zh/op_list.md:top_k_pq_distance、zeta 的 hostcpu infershape 支持状态由 × 更新为 √。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4342 | 3 months ago | |
增加A2 A3新算子支持 Co-authored-by: slx2008<shaolixin@huawei.com> # message auto-generated for no-merge-commit merge: !448 merge master into master 增加A2 A3新算子支持 Created-by: songkai111 Commit-by: slx2008 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!448 | 10 months ago |
| Files | Last commit | Last update |
|---|---|---|
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 7 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 5 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 5 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 10 months ago |