| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: Abs算子资料增加对UINT8和BOOL的解释说明 Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !5073 merge newformerge into master fix: Abs算子资料增加对UINT8和BOOL的解释说明 Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 README.md 资料中增加对 UINT8、BOOL类型的补充解释,说明这两种类型只有aclnn调用方式才支持,图模式不支持。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2869 ## 测试 不涉及 ## 文档更新 更新了 math/abs/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5073 | 10 天前 | |
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 | 1 个月前 | |
[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 | 19 天前 | |
fix: 修复 AllocTensor 空指针解引用 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4966 merge fix/issue-2766-acos-nullptr into master fix: 修复 AllocTensor 空指针解引用 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 修复 l0op::Acos 在 executor->AllocTensor(...) 分配失败返回 nullptr 时,仍将输出张量传入 AiCore/AiCpu launcher 导致空指针解引用的问题。 在输出张量分配后增加 CHECK_RET(output != nullptr, nullptr),并显式引入错误检查头文件。 ## 关联的Issue [#2766](https://gitcode.com/cann/ops-math/issues/2766) ## 测试 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4966 | 11 天前 | |
迁移开源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 | 1 个月前 | |
docs(acosh): 更新 Acosh 算子 Ascend 950 产品支持情况及 op_api_list Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !5060 merge master into master docs(acosh): 更新 Acosh 算子 Ascend 950 产品支持情况及 op_api_list Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新 Acosh 算子 Ascend 950 产品支持情况及 op_api_list,改为支持Ascend950 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2864 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5060 | 11 天前 | |
[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 | 1 个月前 | |
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 | 18 天前 | |
常量折叠和infershape整改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4582 merge master into master 常量折叠和infershape整改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: ## 描述 本 PR 为 6 个 AICPU 算子(add、round、search_sorted、select_v2、square、squared_difference)使能 GE 图编译期常量折叠,并对 search_sorted、select_v2 进行 infershape/OpDef 整改。 ### 变更内容 **1. 常量折叠使能(6 算子)** | 算子 | CMakeLists | kernel 注册 | |------|-----------|-------------| | add | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | round | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | search_sorted | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | select_v2 | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | square | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | squared_difference | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | - 各 kernel 增加 #include "aicpu/math_aicpu_register.h"; - CMakeLists 增加 HOSTCPU TRUE,将算子编入 host 侧折叠 so(libopconstant_folding_math.so)。 **2. infershape / OpDef 整改** - **search_sorted**:新增 op_host/search_sorted_infershape.cpp,实现 InferShape4SearchSorted,输出 shape 取 values(input1)的 shape; - **select_v2**:新增 op_kernel_aicpu/select_v2_aicpu_def.cpp(基于 OpDef 注册输入输出数据类型),删除旧 select_v2.json(JSON 配置方式),统一为 OpDef 注册链路。 ## 关联的Issue #2847 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置与编译,验证 6 个算子 CMakeLists HOSTCPU TRUE 配置变更正确; - 确认 libopconstant_folding_math.so 中已编入上述 6 个算子的 host 侧 kernel。 2. **常量折叠验证** - 输入为常量时,验证算子可在图编译期被折叠求值(host 侧执行),运行期不再下发 device kernel; - 输入为非常量时,验证 device 侧执行逻辑与折叠前保持一致。 3. **InferShape 验证(search_sorted)** - 验证 search_sorted 输出 shape 与 values 输入 shape 一致; - 覆盖多维度、边界 shape 场景。 4. **算子注册/加载验证(select_v2)** - 验证 select_v2 基于 OpDef 注册后接口可正确加载与调用; - 覆盖全数据类型(COMPLEX128/COMPLEX64/DOUBLE/FLOAT/FLOAT16/INT16/INT32/INT64/INT8/UINT16/UINT32/UINT64/UINT8/BOOL)。 5. **算子泛化** - 对 6 个算子执行二级冒烟与泛化用例,确认功能正确性不受影响。 ## 文档更新 本 PR 不涉及 README/aclnn 接口文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4582 | 10 天前 | |
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 | 21 天前 | |
批量修改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 | 2 个月前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5044 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5044 | 11 天前 | |
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 | 17 天前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !5023 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 一、问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_*.cpp)失败信息误标 INFO(应 ERROR),存在故障被忽略风险 - 拼写错误:caculate/negtive/faild/mat 等 - 语法错误:"is failed" 中式结构、"fail to get" 缺时态、缺助动词/介词、must same 等 - 变量越限日志缺正确范围(未给出期望值) - 中文标点(全角顿号)残留 - 示例直接 printf/std::cout 绕过统一日志接口;内部缩写 [XIR] 无法理解 - UT 测试中冗余 std::cout 状态输出 影响算子:cumsum/view_copy/addr/split/split_v/unpack/adds/concat/pack/as_strided/eye/dynamic_partition/assign/masked_fill/strided_slice_grad/triu/tril/tensor_move/asin/power/concat_d/concat_v2 #### 二、环境信息 (可选) 不涉及(纯日志文案整改,无运行时行为变化) #### 三、重现步骤 (可选) 执行算子 UT / 查看 logs/plog 中相关算子日志 #### 四、预期结果 (可选) 日志级别、文案符合日志规范,便于问题定位 💡 备注(选填):排除 experimental 目录,仅整改主仓 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/5023 --- 关联的Issue:#2845 See merge request: cann/ops-math!5023 | 10 天前 | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !5023 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 一、问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_*.cpp)失败信息误标 INFO(应 ERROR),存在故障被忽略风险 - 拼写错误:caculate/negtive/faild/mat 等 - 语法错误:"is failed" 中式结构、"fail to get" 缺时态、缺助动词/介词、must same 等 - 变量越限日志缺正确范围(未给出期望值) - 中文标点(全角顿号)残留 - 示例直接 printf/std::cout 绕过统一日志接口;内部缩写 [XIR] 无法理解 - UT 测试中冗余 std::cout 状态输出 影响算子:cumsum/view_copy/addr/split/split_v/unpack/adds/concat/pack/as_strided/eye/dynamic_partition/assign/masked_fill/strided_slice_grad/triu/tril/tensor_move/asin/power/concat_d/concat_v2 #### 二、环境信息 (可选) 不涉及(纯日志文案整改,无运行时行为变化) #### 三、重现步骤 (可选) 执行算子 UT / 查看 logs/plog 中相关算子日志 #### 四、预期结果 (可选) 日志级别、文案符合日志规范,便于问题定位 💡 备注(选填):排除 experimental 目录,仅整改主仓 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/5023 --- 关联的Issue:#2845 See merge request: cann/ops-math!5023 | 10 天前 | |
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 | 30 天前 | |
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 | 19 天前 | |
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 | 18 天前 | |
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 | 18 天前 | |
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 | 19 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
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 | 19 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !5023 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 一、问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_*.cpp)失败信息误标 INFO(应 ERROR),存在故障被忽略风险 - 拼写错误:caculate/negtive/faild/mat 等 - 语法错误:"is failed" 中式结构、"fail to get" 缺时态、缺助动词/介词、must same 等 - 变量越限日志缺正确范围(未给出期望值) - 中文标点(全角顿号)残留 - 示例直接 printf/std::cout 绕过统一日志接口;内部缩写 [XIR] 无法理解 - UT 测试中冗余 std::cout 状态输出 影响算子:cumsum/view_copy/addr/split/split_v/unpack/adds/concat/pack/as_strided/eye/dynamic_partition/assign/masked_fill/strided_slice_grad/triu/tril/tensor_move/asin/power/concat_d/concat_v2 #### 二、环境信息 (可选) 不涉及(纯日志文案整改,无运行时行为变化) #### 三、重现步骤 (可选) 执行算子 UT / 查看 logs/plog 中相关算子日志 #### 四、预期结果 (可选) 日志级别、文案符合日志规范,便于问题定位 💡 备注(选填):排除 experimental 目录,仅整改主仓 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/5023 --- 关联的Issue:#2845 See merge request: cann/ops-math!5023 | 10 天前 | |
迁移开源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 | 1 个月前 | |
更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !5033 merge master into master 更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2850 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5033 | 11 天前 | |
迁移开源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 | 1 个月前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5044 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5044 | 11 天前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5044 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5044 | 11 天前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5044 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5044 | 11 天前 | |
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 | 15 天前 | |
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 | 18 天前 | |
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 | 19 天前 | |
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 | 11 天前 | |
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 | 11 天前 | |
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 | 1 个月前 | |
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 | 15 天前 | |
## 描述 新增 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 | 12 天前 | |
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 | 11 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
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 | 19 天前 | |
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 | 19 天前 | |
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 | 19 天前 | |
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 | 19 天前 | |
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 | 19 天前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5059 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5059 | 11 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
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 | 15 天前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5059 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5059 | 11 天前 | |
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 | 18 天前 | |
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 | 1 个月前 | |
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 | 15 天前 | |
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 | 16 天前 | |
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 | 1 个月前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5059 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5059 | 11 天前 | |
更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !5033 merge master into master 更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2850 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5033 | 11 天前 | |
修复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 | 17 天前 | |
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 | 15 天前 | |
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 | 18 天前 | |
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 | 15 天前 | |
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 | 1 个月前 | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !5023 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 一、问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_*.cpp)失败信息误标 INFO(应 ERROR),存在故障被忽略风险 - 拼写错误:caculate/negtive/faild/mat 等 - 语法错误:"is failed" 中式结构、"fail to get" 缺时态、缺助动词/介词、must same 等 - 变量越限日志缺正确范围(未给出期望值) - 中文标点(全角顿号)残留 - 示例直接 printf/std::cout 绕过统一日志接口;内部缩写 [XIR] 无法理解 - UT 测试中冗余 std::cout 状态输出 影响算子:cumsum/view_copy/addr/split/split_v/unpack/adds/concat/pack/as_strided/eye/dynamic_partition/assign/masked_fill/strided_slice_grad/triu/tril/tensor_move/asin/power/concat_d/concat_v2 #### 二、环境信息 (可选) 不涉及(纯日志文案整改,无运行时行为变化) #### 三、重现步骤 (可选) 执行算子 UT / 查看 logs/plog 中相关算子日志 #### 四、预期结果 (可选) 日志级别、文案符合日志规范,便于问题定位 💡 备注(选填):排除 experimental 目录,仅整改主仓 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/5023 --- 关联的Issue:#2845 See merge request: cann/ops-math!5023 | 10 天前 | |
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 | 5 个月前 | |
fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !5066 merge fix/proto-isolation-macro into master fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_math.h/.cpp,再编成内置 op_proto 库。当同名算子在 canndev 侧的遗留原型头(elewise_calculation_ops.h、selection_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 math/bias、math/add_v2、math/square_sum_all、conversion/tensor_redirect 等先例,但本批 5 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 5 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_MULNONAN #define OPS_PROTO_DEF_MULNONAN REG_OP(MulNoNan) ... .OP_END_FACTORY_REG(MulNoNan) #endif // OPS_PROTO_DEF_MULNONAN 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(5 个)** CumulativeLogsumexp、FusedMulAdd、FusedMulAddAdd、FusedMulAddNL2loss、MulNoNan **刻意未纳入的三处**,说明如下,避免评审时误判为遗漏: | 文件 | 未改原因 | |---|---| | math/ragged_bin_count/op_graph/ragged_bin_count_proto.h | 已有隔离宏,且宏名刻意用蛇形 OPS_PROTO_DEF_RAGGED_BIN_COUNT,以便与 ops_proto_legacy.h 逐字节对齐。改成常规拼法反而会让配对失效 | | experimental/math/add_v2/op_graph/add_v2_proto.h | 正式目录 math/add_v2 已有隔离宏。experimental 副本 dtype 支持面更窄(4 种 vs 11 种),共用同一宏名会让并入顺序决定最终 IR,存在悄悄收窄支持面的风险 | | experimental/math/mul_no_nan/op_graph/mul_no_nan_proto.h | 同上,experimental 副本 3 种 dtype vs 正式目录 4 种 | **变更范围**:5 个文件,+15 −0,纯条件编译指令,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_math_proto_extend.h。 ## 关联的Issue 关联 Issue #2875 ## 测试 1. **合并产物验证**:对 5 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 5 个、#ifndef OPS_PROTO_DEF_ 5 个,隔离宏 5/5 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:5 个新增宏无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查全部通过;OAT 许可头检查全部合规。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: <!-- 关联 Issue: https://gitcode.com/cann/ops-math/issues/2875 --> See merge request: cann/ops-math!5066 | 10 天前 | |
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 | 12 天前 | |
[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 | 19 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
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 | 18 天前 | |
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 | 15 天前 | |
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 | 15 天前 | |
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 | 17 天前 | |
[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 | 11 天前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 11 天前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5059 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5059 | 11 天前 | |
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 | 18 天前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5059 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5059 | 11 天前 | |
fix(exp_segsum_grad): clamp coreNumPlatform to MAX_CORE_CONT in arch22 tiling, harden arch22 tiling against zero-size inputs and null pointers. Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !5016 merge 2782 into master fix(exp_segsum_grad): clamp coreNumPlatform to MAX_CORE_CONT, harden arch22 tiling and kernel against zero-size inputs and null pointers Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 加固 ExpSegsumGrad arch22(Ascend910B)的 tiling 与 kernel 实现: 1. GetNeedCoreNum 中 coreNumPlatform 超过 MAX_CORE_CONT(50)时进行 clamp:batchStart/batchEnd 数组容量为 MAX_CORE_CONT,coreNumPlatform 过大(如 64 核平台)会导致越界写。 2. 零尺寸输入保护:batches == 0 或 tailDimLength == 0 时,GetTilingKey 中 calNumAlign 为 0 会除零,且 runtime 要求 block 维度非零。RunBigKernelTiling 对这类输入直接设置 needCoreNum = 1、tilingKey = SMALL_SIZE_TILING_KEY、slideSize = 0。 3. 空指针与错误码传播:ParseInputAttrs 对 GetInputShape(0)/GetInputDesc(0) 判空,RunBigKernelTiling 对 GetWorkspaceSizes/GetCompileInfo 判空;ParseInputAttrs/FillTilingData 改为返回 ge::graphStatus,SetScheduleMode 检查返回值。 4. kernel 侧防护:Init/Process 增加早期返回 guard(tailDimLength == 0 || slideSize == 0 || batchStart >= batchEnd),避免零尺寸 tiling 数据下执行 0 字节 InitBuffer 或 0/0 除零;tilingData 参数改为 const。 ## 关联的Issue [#2782](https://gitcode.com/cann/ops-math/issues/2782) ## 测试 新增 op_host arch22 tiling 单元测试 3 个: - exp_segsum_grad_tiling_002:coreNumPlatform=64 被 clamp 到 50,验证 blockNum 与 batchEnd 覆盖完整性 - exp_segsum_grad_tiling_003:batches == 0 时返回 blockNum=1、tilingKey=1 - exp_segsum_grad_tiling_004:tailDimLength == 0 时返回 blockNum=1、tilingKey=1 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5016 | 11 天前 | |
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 | 18 天前 | |
[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 | 19 天前 | |
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 | 18 天前 | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !5023 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 一、问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_*.cpp)失败信息误标 INFO(应 ERROR),存在故障被忽略风险 - 拼写错误:caculate/negtive/faild/mat 等 - 语法错误:"is failed" 中式结构、"fail to get" 缺时态、缺助动词/介词、must same 等 - 变量越限日志缺正确范围(未给出期望值) - 中文标点(全角顿号)残留 - 示例直接 printf/std::cout 绕过统一日志接口;内部缩写 [XIR] 无法理解 - UT 测试中冗余 std::cout 状态输出 影响算子:cumsum/view_copy/addr/split/split_v/unpack/adds/concat/pack/as_strided/eye/dynamic_partition/assign/masked_fill/strided_slice_grad/triu/tril/tensor_move/asin/power/concat_d/concat_v2 #### 二、环境信息 (可选) 不涉及(纯日志文案整改,无运行时行为变化) #### 三、重现步骤 (可选) 执行算子 UT / 查看 logs/plog 中相关算子日志 #### 四、预期结果 (可选) 日志级别、文案符合日志规范,便于问题定位 💡 备注(选填):排除 experimental 目录,仅整改主仓 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/5023 --- 关联的Issue:#2845 See merge request: cann/ops-math!5023 | 10 天前 | |
math仓算子日志整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5059 merge master into master math仓算子日志整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 math仓算子日志整改 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5059 | 11 天前 | |
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 | 18 天前 | |
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 | 12 天前 | |
[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 | 19 天前 | |
[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 | 19 天前 | |
fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !5066 merge fix/proto-isolation-macro into master fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_math.h/.cpp,再编成内置 op_proto 库。当同名算子在 canndev 侧的遗留原型头(elewise_calculation_ops.h、selection_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 math/bias、math/add_v2、math/square_sum_all、conversion/tensor_redirect 等先例,但本批 5 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 5 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_MULNONAN #define OPS_PROTO_DEF_MULNONAN REG_OP(MulNoNan) ... .OP_END_FACTORY_REG(MulNoNan) #endif // OPS_PROTO_DEF_MULNONAN 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(5 个)** CumulativeLogsumexp、FusedMulAdd、FusedMulAddAdd、FusedMulAddNL2loss、MulNoNan **刻意未纳入的三处**,说明如下,避免评审时误判为遗漏: | 文件 | 未改原因 | |---|---| | math/ragged_bin_count/op_graph/ragged_bin_count_proto.h | 已有隔离宏,且宏名刻意用蛇形 OPS_PROTO_DEF_RAGGED_BIN_COUNT,以便与 ops_proto_legacy.h 逐字节对齐。改成常规拼法反而会让配对失效 | | experimental/math/add_v2/op_graph/add_v2_proto.h | 正式目录 math/add_v2 已有隔离宏。experimental 副本 dtype 支持面更窄(4 种 vs 11 种),共用同一宏名会让并入顺序决定最终 IR,存在悄悄收窄支持面的风险 | | experimental/math/mul_no_nan/op_graph/mul_no_nan_proto.h | 同上,experimental 副本 3 种 dtype vs 正式目录 4 种 | **变更范围**:5 个文件,+15 −0,纯条件编译指令,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_math_proto_extend.h。 ## 关联的Issue 关联 Issue #2875 ## 测试 1. **合并产物验证**:对 5 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 5 个、#ifndef OPS_PROTO_DEF_ 5 个,隔离宏 5/5 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:5 个新增宏无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查全部通过;OAT 许可头检查全部合规。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: <!-- 关联 Issue: https://gitcode.com/cann/ops-math/issues/2875 --> See merge request: cann/ops-math!5066 | 10 天前 | |
fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !5066 merge fix/proto-isolation-macro into master fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_math.h/.cpp,再编成内置 op_proto 库。当同名算子在 canndev 侧的遗留原型头(elewise_calculation_ops.h、selection_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 math/bias、math/add_v2、math/square_sum_all、conversion/tensor_redirect 等先例,但本批 5 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 5 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_MULNONAN #define OPS_PROTO_DEF_MULNONAN REG_OP(MulNoNan) ... .OP_END_FACTORY_REG(MulNoNan) #endif // OPS_PROTO_DEF_MULNONAN 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(5 个)** CumulativeLogsumexp、FusedMulAdd、FusedMulAddAdd、FusedMulAddNL2loss、MulNoNan **刻意未纳入的三处**,说明如下,避免评审时误判为遗漏: | 文件 | 未改原因 | |---|---| | math/ragged_bin_count/op_graph/ragged_bin_count_proto.h | 已有隔离宏,且宏名刻意用蛇形 OPS_PROTO_DEF_RAGGED_BIN_COUNT,以便与 ops_proto_legacy.h 逐字节对齐。改成常规拼法反而会让配对失效 | | experimental/math/add_v2/op_graph/add_v2_proto.h | 正式目录 math/add_v2 已有隔离宏。experimental 副本 dtype 支持面更窄(4 种 vs 11 种),共用同一宏名会让并入顺序决定最终 IR,存在悄悄收窄支持面的风险 | | experimental/math/mul_no_nan/op_graph/mul_no_nan_proto.h | 同上,experimental 副本 3 种 dtype vs 正式目录 4 种 | **变更范围**:5 个文件,+15 −0,纯条件编译指令,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_math_proto_extend.h。 ## 关联的Issue 关联 Issue #2875 ## 测试 1. **合并产物验证**:对 5 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 5 个、#ifndef OPS_PROTO_DEF_ 5 个,隔离宏 5/5 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:5 个新增宏无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查全部通过;OAT 许可头检查全部合规。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: <!-- 关联 Issue: https://gitcode.com/cann/ops-math/issues/2875 --> See merge request: cann/ops-math!5066 | 10 天前 | |
refactor: rename Ascend C vector APIs to new names for 7 operators Co-authored-by: hanrui22<hanrui2@huawei.com> # message auto-generated for no-merge-commit merge: !5072 merge master into master refactor: rename Ascend C vector APIs to new names for 7 operators Created-by: xieshengwei1024 Commit-by: hanrui22 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 7个ascendc算子vf接口适配新api ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已通过二进制测试,修改前后结果二进制一致 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:整改 See merge request: cann/ops-math!5072 | 10 天前 | |
fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !5066 merge fix/proto-isolation-macro into master fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_math.h/.cpp,再编成内置 op_proto 库。当同名算子在 canndev 侧的遗留原型头(elewise_calculation_ops.h、selection_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 math/bias、math/add_v2、math/square_sum_all、conversion/tensor_redirect 等先例,但本批 5 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 5 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_MULNONAN #define OPS_PROTO_DEF_MULNONAN REG_OP(MulNoNan) ... .OP_END_FACTORY_REG(MulNoNan) #endif // OPS_PROTO_DEF_MULNONAN 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(5 个)** CumulativeLogsumexp、FusedMulAdd、FusedMulAddAdd、FusedMulAddNL2loss、MulNoNan **刻意未纳入的三处**,说明如下,避免评审时误判为遗漏: | 文件 | 未改原因 | |---|---| | math/ragged_bin_count/op_graph/ragged_bin_count_proto.h | 已有隔离宏,且宏名刻意用蛇形 OPS_PROTO_DEF_RAGGED_BIN_COUNT,以便与 ops_proto_legacy.h 逐字节对齐。改成常规拼法反而会让配对失效 | | experimental/math/add_v2/op_graph/add_v2_proto.h | 正式目录 math/add_v2 已有隔离宏。experimental 副本 dtype 支持面更窄(4 种 vs 11 种),共用同一宏名会让并入顺序决定最终 IR,存在悄悄收窄支持面的风险 | | experimental/math/mul_no_nan/op_graph/mul_no_nan_proto.h | 同上,experimental 副本 3 种 dtype vs 正式目录 4 种 | **变更范围**:5 个文件,+15 −0,纯条件编译指令,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_math_proto_extend.h。 ## 关联的Issue 关联 Issue #2875 ## 测试 1. **合并产物验证**:对 5 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 5 个、#ifndef OPS_PROTO_DEF_ 5 个,隔离宏 5/5 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:5 个新增宏无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查全部通过;OAT 许可头检查全部合规。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: <!-- 关联 Issue: https://gitcode.com/cann/ops-math/issues/2875 --> See merge request: cann/ops-math!5066 | 10 天前 | |
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 | 18 天前 | |
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 | 15 天前 | |
feat: enable GetDynamicDims AICPU constant folding Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5007 merge enable-get-dynamic-dims-const-folding into master feat: enable GetDynamicDims AICPU constant folding Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims 的 AICPU OpDef 已配置 OPS_FLAG_OPEN,GE 会尝试在图编译期进行常量折叠,但此前 kernel 未以 x86 host 版本编入 libopconstant_folding_math.so,导致常量折叠标志已开启却缺少可执行的 host kernel。 本次修改: 1. 在 GetDynamicDims 的 add_all_modules_sources 中增加 HOSTCPU TRUE,生成 get_dynamic_dims_host_const_obj 并链接到 libopconstant_folding_math.so。 2. 引入公共 aicpu/math_aicpu_register.h,将注册宏切换为 OPS_MATH_REGISTER_CPU_KERNELV2,支持 host 侧 V2 注册及 V1 weak fallback。 3. 不修改 get_dynamic_dims_aicpu_def.cpp,因为 opsFlag 已为 OPEN;不修改 kernel 计算逻辑,非 host 构建下注册宏退化为原 REGISTER_CPU_KERNEL。 ## 关联的Issue Fixes #2836 ## 测试 1. pre-commit run:全部通过,包括 clang-format、codespell 和 OAT。 2. built-in CMake 配置:成功生成 get_dynamic_dims_host_const_obj,并确认其进入 libopconstant_folding_math.so object 列表。 3. cmake --build build --target opconstant_folding_math_builtin -j8:构建通过。 4. so 内容正反对照: - GetDynamicDims:HIT。 - 原有基线 Tile、TransData:HIT。 - 未使能的 AbsGrad、Bincount、BesselI0e:MISS。 5. object 符号检查:存在 Creator_kGetDynamicDims_Kernel,并引用 weak RegistCpuKernelV2。 6. bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims -j16:7 个测试全部通过。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5007 | 10 天前 | |
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 | 24 天前 | |
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 | 11 天前 | |
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 | 15 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
修改AIDD扫描的语义问题 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !5050 merge master into master 修改AIDD扫描的语义问题 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的语义问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5050 | 11 天前 | |
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 | 18 天前 | |
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 | 15 天前 | |
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 | 12 天前 | |
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 | 1 个月前 | |
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 | 19 天前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 11 天前 | |
规范化修改产品术语名 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 | 30 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
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 | 18 天前 | |
perf(sort): optimize non-last-axis small sorts Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !5080 merge fix_sort_perf into master perf(sort): optimize non-last-axis small sorts Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 优化 Ascend 950 上 Sort 算子的非末轴小轴场景。现有 no-transpose two-stage 路径主要按相邻 inner 位置分批,在 innerSize 较小、outerSize 较大或 batch 分布不均时,可能出现活跃核不足、每核批次偏多及 UB 索引占用偏大的问题;部分低收益 shape 的 gather/scatter 开销也可能高于前后 transpose。 主要改动: - 新增 Sort 专用非末轴 two-stage 调度 schId 11,将 strided non-last-axis 策略与末轴 Sort、物理连续的 innerSize == 1 场景及 KthValue 原有路由隔离。 - host tiling 支持按完整 outer slice 分组 batch,并为非分组场景采用“优先更多活跃核、其次更少每核批次、最后更少空闲槽位”的选批策略。 - schId 11 在 UB 中使用 uint32 轴内索引,仅在 GM 写回时转换为输出索引类型,以降低 UB 占用;FP32 Sort32 场景增加更宽 inner chunk 候选。 - 新增 SortGroupedOuterSmallAxisTwoStage:block 对齐时通过三维 NDDMA 将 GM [outer, axis, inner] 聚集到密集 UB,否则使用 SIMT gather;排序后通过 SIMT scatter 恢复原始布局。非分组 strided batch 使用二维 NDDMA 加载。 - 为 merge 型非末轴路径增加 bank rotation padding,避免相邻 UB 行反复落在相同 bank group。 - aclnnSort 完善 no-transpose 收益判断:超小 inner row 且 outerSize 较大、整数大轴以及估算输出不小于 1 GiB 时继续走成熟的 transpose 路径。 - 保持既有接口和 dtype 范围不变,并补充 KthValue 回归用例,确保共享 tiling 代码的调整不改变其既有 two-stage 路由。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2882 ## 测试 - Sort 331个ST用例通过,KthValue 108个ST用例通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5080 | 10 天前 | |
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 | 18 天前 | |
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 | 17 天前 | |
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 | 11 天前 | |
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 | 17 天前 | |
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 | 17 天前 | |
refactor: rename Ascend C vector APIs to new names for 7 operators Co-authored-by: hanrui22<hanrui2@huawei.com> # message auto-generated for no-merge-commit merge: !5072 merge master into master refactor: rename Ascend C vector APIs to new names for 7 operators Created-by: xieshengwei1024 Commit-by: hanrui22 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 7个ascendc算子vf接口适配新api ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已通过二进制测试,修改前后结果二进制一致 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:整改 See merge request: cann/ops-math!5072 | 10 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5064 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 主要针对 math 算子族的 tiling 代码进行非功能性整理:统一代码格式,并在算子 tiling 执行失败的错误日志中补充具体的数据类型(dtype)信息,同时移除部分冗余的调试日志。PR 描述为空,仅从改动文件及补丁可见,不涉及算法逻辑、接口或数据结构的行为变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5064 | 11 天前 | |
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 | 15 天前 | |
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 | 17 天前 | |
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 | 17 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5067 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓部分算子的日志进行统一整改,核心是规范错误日志输出(在失败日志中补充 dtype、tilingKey 等关键信息)、清理冗余的调试日志(OP_LOGD),并统一相关 tiling 与 aclnn 接口文件的代码格式与错误提示标点。涉及 logical_not、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad 等算子的 arch35 tiling 实现及 aclnn_round.cpp 接口,不涉及业务逻辑变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5067 | 10 天前 | |
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 | 15 天前 | |
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 | 15 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5067 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓部分算子的日志进行统一整改,核心是规范错误日志输出(在失败日志中补充 dtype、tilingKey 等关键信息)、清理冗余的调试日志(OP_LOGD),并统一相关 tiling 与 aclnn 接口文件的代码格式与错误提示标点。涉及 logical_not、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad 等算子的 arch35 tiling 实现及 aclnn_round.cpp 接口,不涉及业务逻辑变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5067 | 10 天前 | |
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 | 15 天前 | |
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 | 15 天前 | |
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 | 30 天前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 11 天前 | |
批量修改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 | 2 个月前 | |
fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !5066 merge fix/proto-isolation-macro into master fix(op_graph): 5 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_math.h/.cpp,再编成内置 op_proto 库。当同名算子在 canndev 侧的遗留原型头(elewise_calculation_ops.h、selection_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 math/bias、math/add_v2、math/square_sum_all、conversion/tensor_redirect 等先例,但本批 5 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 5 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_MULNONAN #define OPS_PROTO_DEF_MULNONAN REG_OP(MulNoNan) ... .OP_END_FACTORY_REG(MulNoNan) #endif // OPS_PROTO_DEF_MULNONAN 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(5 个)** CumulativeLogsumexp、FusedMulAdd、FusedMulAddAdd、FusedMulAddNL2loss、MulNoNan **刻意未纳入的三处**,说明如下,避免评审时误判为遗漏: | 文件 | 未改原因 | |---|---| | math/ragged_bin_count/op_graph/ragged_bin_count_proto.h | 已有隔离宏,且宏名刻意用蛇形 OPS_PROTO_DEF_RAGGED_BIN_COUNT,以便与 ops_proto_legacy.h 逐字节对齐。改成常规拼法反而会让配对失效 | | experimental/math/add_v2/op_graph/add_v2_proto.h | 正式目录 math/add_v2 已有隔离宏。experimental 副本 dtype 支持面更窄(4 种 vs 11 种),共用同一宏名会让并入顺序决定最终 IR,存在悄悄收窄支持面的风险 | | experimental/math/mul_no_nan/op_graph/mul_no_nan_proto.h | 同上,experimental 副本 3 种 dtype vs 正式目录 4 种 | **变更范围**:5 个文件,+15 −0,纯条件编译指令,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_math_proto_extend.h。 ## 关联的Issue 关联 Issue #2875 ## 测试 1. **合并产物验证**:对 5 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 5 个、#ifndef OPS_PROTO_DEF_ 5 个,隔离宏 5/5 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:5 个新增宏无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查全部通过;OAT 许可头检查全部合规。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: <!-- 关联 Issue: https://gitcode.com/cann/ops-math/issues/2875 --> See merge request: cann/ops-math!5066 | 10 天前 | |
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 | 15 天前 | |
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 | 19 天前 | |
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 | 19 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5067 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓部分算子的日志进行统一整改,核心是规范错误日志输出(在失败日志中补充 dtype、tilingKey 等关键信息)、清理冗余的调试日志(OP_LOGD),并统一相关 tiling 与 aclnn 接口文件的代码格式与错误提示标点。涉及 logical_not、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad 等算子的 arch35 tiling 实现及 aclnn_round.cpp 接口,不涉及业务逻辑变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5067 | 10 天前 | |
剥离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 | 1 个月前 | |
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 | 11 天前 | |
[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 | 19 天前 | |
迁移开源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 | 1 个月前 | |
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 | 15 天前 | |
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 | 15 天前 | |
[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 | 1 个月前 | |
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 | 11 天前 | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !5023 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 一、问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_*.cpp)失败信息误标 INFO(应 ERROR),存在故障被忽略风险 - 拼写错误:caculate/negtive/faild/mat 等 - 语法错误:"is failed" 中式结构、"fail to get" 缺时态、缺助动词/介词、must same 等 - 变量越限日志缺正确范围(未给出期望值) - 中文标点(全角顿号)残留 - 示例直接 printf/std::cout 绕过统一日志接口;内部缩写 [XIR] 无法理解 - UT 测试中冗余 std::cout 状态输出 影响算子:cumsum/view_copy/addr/split/split_v/unpack/adds/concat/pack/as_strided/eye/dynamic_partition/assign/masked_fill/strided_slice_grad/triu/tril/tensor_move/asin/power/concat_d/concat_v2 #### 二、环境信息 (可选) 不涉及(纯日志文案整改,无运行时行为变化) #### 三、重现步骤 (可选) 执行算子 UT / 查看 logs/plog 中相关算子日志 #### 四、预期结果 (可选) 日志级别、文案符合日志规范,便于问题定位 💡 备注(选填):排除 experimental 目录,仅整改主仓 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/5023 --- 关联的Issue:#2845 See merge request: cann/ops-math!5023 | 10 天前 | |
剥离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 | 1 个月前 | |
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 | 18 天前 | |
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 | 1 个月前 | |
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 | 22 天前 | |
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 | 22 天前 | |
合并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 | 1 个月前 | |
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 | 1 个月前 | |
fix(ragged_bin_count): improve weighted precision and align host contracts Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4959 merge fix/ragged-bin-count-short-row-precision into master fix(ragged_bin_count): improve weighted precision and align host contracts Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 RaggedBinCount Ascend950 实现的 weighted 累加精度、weights shape 契约、当前 TTK Golden Promote 契约及 CheckSupport 产品隔离问题。 主要改动: - 对齐 InferShape、Tiling、Graph IR 和 README 的 weights 契约: values/weights 支持 rank 0–2;空 weights 表示无权;非空 weights 只要求与 values 元素数相同,不再按 shape 逐维比较。 - 为 weighted ROW/VALUE 路径补齐 compensated/exact 累加、确定性归并、有限溢出相消、subnormal 和 NaN/Inf 语义,并优化 precise ROW 的多核分区。 - 将 CheckSupport 判定抽成统一实现,并仅通过 arch35 tiling 源注册,避免 Ascend950 的 dtype 限制进入 910/910B/910_93 既有 tiling 库。 - 增补静态/动态 rank2、空 Tensor、非法输入、边界、精确舍入、特殊值和 CheckSupport dtype 组合用例。 - 修正当前 TTK 的 Golden Promote 契约:一般用例继续使用 Torch bincount 的 CPU FP64 高精度参考;命名的固定数值角落使用独立 Python-int exact oracle;close/mixed 直接舍入 FP32,cross_check/Promote 直接返回 FP64,不经过 FP32 中转。 - third_party 保持竞品原生 repeat_interleave + index_add_,不复制 NPU 的分区、TwoSum 或 exact accumulator 实现。 ## 关联的Issue - #2758 - Ascend 950 初始实现:!4599 ## 测试 最终提交 5738ea5b62aab1af8a0fd31ce38fa8871549c1f9 的本轮回归: - Host UT:70/70 PASS;新增 4 条 CheckSupport dtype 契约用例。 - GEIR weights 契约:10/10 PASS;每条 CST、DYN 均 PASS,共 20 个图执行结果。 - Ascend950 出包、部署及 MD5 校验通过;生产构建清单包含 arch35 tiling 和 arch35 CheckSupport 注册源。 - 910B 双算子复现场景构建通过;生产清单确认不含 RaggedBinCount arch35 tiling、CheckSupport 注册源或 ragged_bin_count_def.cpp。 - 最终 rebase 后受影响算子本地 CI 全部通过,覆盖 Ascend950、Ascend910B,以及 pre-commit、OAT、Markdown 链接、Host/Graph/Kernel UT 和定向出包。 - push 远端 Git Hooks 通过。 数值 Kernel、Golden 和 third_party 的既有回归结果: - Golden UT:8/8 PASS;当前 TTK Promote/cross-check 定向 UT:14/14 PASS。 - 泛化:release binary 1000/1000 PASS;BINARY_MATCH、memory OOB、binary OOB 均通过。 - 一般精度:official mixed 100/100 PASS;补充 cross-check 100/100 precision PASS,其中非空输出 ratio 99/99 PASS,另 1 条合法空输出 N/A。 - 特殊精度:close 48/48 PASS;目标 dump 17/17 TTK PASS、17/17 bitwise PASS。 - GEIR 主集合:静态、动态、XPU 各 100/100 PASS。 - 性能:200 例 folded G/N 均值 4.880、最小值 0.1280,满足均值 >=1.2 且最小值 >=0.1;invoke-path 均值 10.74、最小值 0.3542。 - 此前数值核心覆盖率为行 99.3%(289/291)、函数 96.3%(26/27),InferShape 93/93 行;本轮新增 CheckSupport 代码已补定向 UT,但未重新计算总体覆盖率百分比。 额外探索将全部 48 条 special 强制走三方 cross_check 时为 46/48。两条舍入构造因竞品原生 index_add_ 在 FLT_MAX 中间运算溢出后产生 NaN/Inf,而 exact golden 与 NPU 均返回正确有限值,当前 TTK 报 NaN/Inf mismatch。该探索结果不作为 special 的正式 gate;未放宽阈值,也未替换竞品原生实现,正式 special gate 为 close 48/48 加 bitwise 17/17。 本轮最后修改只涉及 CMake、Host CheckSupport 注册及其 UT,未改变数值 Kernel、Golden 或 third_party,因此没有重复执行全量数值/性能集合。最终 PR 已 rebase 到 master@cd606ed68a366d246230f3f4aae214d70874369c,仅含 1 个提交;整理/rebase 前后的完整 diff、文件列表、增删行和 patch-id 均一致。 TTK 版本:a5ac23d72c38ea1f71043a828bb368889804bc6c。 ## 文档更新 更新 math/ragged_bin_count/README.md 中 weights rank/shape 契约、空 Tensor 语义和调用范围;同步 math/ragged_bin_count/op_graph/ragged_bin_count_proto.h 的 Graph IR 参数注释,并删除与用户接口无关的架构实现说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4959 | 11 天前 | |
修改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 | 1 个月前 | |
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 | 3 个月前 | |
更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !5033 merge master into master 更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新Asinh/Cosh/Real三个算子的Aclnn文档中 Ascend 950 产品支持情况为支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2850 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5033 | 11 天前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 11 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5067 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓部分算子的日志进行统一整改,核心是规范错误日志输出(在失败日志中补充 dtype、tilingKey 等关键信息)、清理冗余的调试日志(OP_LOGD),并统一相关 tiling 与 aclnn 接口文件的代码格式与错误提示标点。涉及 logical_not、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad 等算子的 arch35 tiling 实现及 aclnn_round.cpp 接口,不涉及业务逻辑变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5067 | 10 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
test(reduce_any): 补充op_api UT覆盖scalar dim越界分支 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5052 merge ut-reduce-any-op-api into master test(reduce_any): 补充op_api UT覆盖scalar dim越界分支 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: Closes #2858 ## 修改内容 补充reduce_any算子op_api UT覆盖 ## 验证 - 910b: 编译运行通过, pre-commit PASSED See merge request: cann/ops-math!5052 | 10 天前 | |
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 | 19 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
test(reduce_max): 补充op_api UT覆盖aclnn_amax scalar/空dim/重复dim分支 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5054 merge ut-reduce-max-op-api into master test(reduce_max): 补充op_api UT覆盖aclnn_amax scalar/空dim/重复dim分支 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: Closes #2860 ## 修改内容 补充reduce_max算子op_api UT覆盖 ## 验证 - 910b: 编译运行通过, pre-commit PASSED See merge request: cann/ops-math!5054 | 10 天前 | |
style(reduce_mean): 修复test_aclnn_global_average_pool.cpp格式 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5061 merge format-reduce-mean-test into master style(reduce_mean): 修复test_aclnn_global_average_pool.cpp格式 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: Closes #2863 ## 修改内容 clang-format自动修复test_aclnn_global_average_pool.cpp格式问题(花括号风格、换行缩进) ## 验证 pre-commit PASSED See merge request: cann/ops-math!5061 | 10 天前 | |
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 | 15 天前 | |
test(reduce_min): 补充op_api UT覆盖aclnn_amin scalar/空dim/重复dim分支 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5055 merge ut-reduce-min-op-api into master test(reduce_min): 补充op_api UT覆盖aclnn_amin scalar/空dim/重复dim分支 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: Closes #2861 ## 修改内容 补充reduce_min算子op_api UT覆盖 ## 验证 - 910b: 编译运行通过, pre-commit PASSED See merge request: cann/ops-math!5055 | 10 天前 | |
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 | 18 天前 | |
test(reduce_prod): 补充infershape UT覆盖InferShapeRange/InferDataType回调 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5046 merge ut-reduce-prod-infershape into master test(reduce_prod): 补充infershape UT覆盖InferShapeRange/InferDataType回调 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: Closes #2855 ## 修改内容 补充reduce_prod算子infershape UT覆盖InferShapeRange和InferDataType回调函数 ## 新增用例(2个) - reduce_prod_infer_datatype: 覆盖InferDataType回调 - reduce_prod_infer_shape_range: 覆盖InferShapeRange回调 ## 验证 - 910b: 35 tests PASSED, infershape覆盖率33.3%->100% See merge request: cann/ops-math!5046 | 10 天前 | |
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 | 15 天前 | |
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 | 16 天前 | |
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 | 18 天前 | |
test(reduce_sum): 补充op_api UT覆盖scalar输入/重复dim/dim越界分支 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5053 merge ut-reduce-sum-op-api into master test(reduce_sum): 补充op_api UT覆盖scalar输入/重复dim/dim越界分支 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: Closes #2859 ## 修改内容 补充reduce_sum算子op_api UT覆盖 ## 验证 - 910b: 编译运行通过, pre-commit PASSED See merge request: cann/ops-math!5053 | 10 天前 | |
style(reduce_var): 修复test_var_infershape.cpp格式 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5062 merge format-reduce-var-test into master style(reduce_var): 修复test_var_infershape.cpp格式 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: Closes #2865 ## 修改内容 clang-format自动修复test_var_infershape.cpp格式问题(花括号风格、换行缩进) ## 验证 pre-commit PASSED See merge request: cann/ops-math!5062 | 10 天前 | |
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 | 18 天前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 11 天前 | |
迁移开源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 | 1 个月前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5067 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓部分算子的日志进行统一整改,核心是规范错误日志输出(在失败日志中补充 dtype、tilingKey 等关键信息)、清理冗余的调试日志(OP_LOGD),并统一相关 tiling 与 aclnn 接口文件的代码格式与错误提示标点。涉及 logical_not、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad 等算子的 arch35 tiling 实现及 aclnn_round.cpp 接口,不涉及业务逻辑变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5067 | 10 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5067 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓部分算子的日志进行统一整改,核心是规范错误日志输出(在失败日志中补充 dtype、tilingKey 等关键信息)、清理冗余的调试日志(OP_LOGD),并统一相关 tiling 与 aclnn 接口文件的代码格式与错误提示标点。涉及 logical_not、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad 等算子的 arch35 tiling 实现及 aclnn_round.cpp 接口,不涉及业务逻辑变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5067 | 10 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5067 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 针对 math 仓部分算子的日志进行统一整改,核心是规范错误日志输出(在失败日志中补充 dtype、tilingKey 等关键信息)、清理冗余的调试日志(OP_LOGD),并统一相关 tiling 与 aclnn 接口文件的代码格式与错误提示标点。涉及 logical_not、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad 等算子的 arch35 tiling 实现及 aclnn_round.cpp 接口,不涉及业务逻辑变更。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5067 | 10 天前 | |
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 | 12 天前 | |
常量折叠和infershape整改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4582 merge master into master 常量折叠和infershape整改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: ## 描述 本 PR 为 6 个 AICPU 算子(add、round、search_sorted、select_v2、square、squared_difference)使能 GE 图编译期常量折叠,并对 search_sorted、select_v2 进行 infershape/OpDef 整改。 ### 变更内容 **1. 常量折叠使能(6 算子)** | 算子 | CMakeLists | kernel 注册 | |------|-----------|-------------| | add | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | round | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | search_sorted | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | select_v2 | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | square | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | squared_difference | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | - 各 kernel 增加 #include "aicpu/math_aicpu_register.h"; - CMakeLists 增加 HOSTCPU TRUE,将算子编入 host 侧折叠 so(libopconstant_folding_math.so)。 **2. infershape / OpDef 整改** - **search_sorted**:新增 op_host/search_sorted_infershape.cpp,实现 InferShape4SearchSorted,输出 shape 取 values(input1)的 shape; - **select_v2**:新增 op_kernel_aicpu/select_v2_aicpu_def.cpp(基于 OpDef 注册输入输出数据类型),删除旧 select_v2.json(JSON 配置方式),统一为 OpDef 注册链路。 ## 关联的Issue #2847 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置与编译,验证 6 个算子 CMakeLists HOSTCPU TRUE 配置变更正确; - 确认 libopconstant_folding_math.so 中已编入上述 6 个算子的 host 侧 kernel。 2. **常量折叠验证** - 输入为常量时,验证算子可在图编译期被折叠求值(host 侧执行),运行期不再下发 device kernel; - 输入为非常量时,验证 device 侧执行逻辑与折叠前保持一致。 3. **InferShape 验证(search_sorted)** - 验证 search_sorted 输出 shape 与 values 输入 shape 一致; - 覆盖多维度、边界 shape 场景。 4. **算子注册/加载验证(select_v2)** - 验证 select_v2 基于 OpDef 注册后接口可正确加载与调用; - 覆盖全数据类型(COMPLEX128/COMPLEX64/DOUBLE/FLOAT/FLOAT16/INT16/INT32/INT64/INT8/UINT16/UINT32/UINT64/UINT8/BOOL)。 5. **算子泛化** - 对 6 个算子执行二级冒烟与泛化用例,确认功能正确性不受影响。 ## 文档更新 本 PR 不涉及 README/aclnn 接口文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4582 | 10 天前 | |
refactor(segsum): arch35 内核头文件更名为 segsum_arch35.h,消除与 A2 同名 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !5035 merge fix/segsum-arch35-header-rename into master refactor(segsum): arch35 内核头文件更名为 segsum_arch35.h,消除与 A2 同名 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 将 math/segsum/op_kernel/arch35/segsum.h 更名为 segsum_arch35.h,并同步 arch35/segsum.cpp 的 include。 改动原因:该头文件与 A2 的 math/segsum/op_kernel/segsum.h 基名完全相同,两者都可能出现在内核编译的头文件搜索路径上,#include "segsum.h" 的落点依赖 include 顺序;检视与排障时也无法从文件名分辨代次。仓内 248 个含 op_kernel/arch35 的算子中仅 4 个存在这种同名(mul_addn、pad_v3_grad_replication、exp_segsum_grad、segsum),主流写法是 arch35 侧另起名(如 conversion/slice/op_kernel/arch35/slice_arch35.h);本算子 host 侧已经是 segsum_tiling_arch35.cpp/.h,本次把内核头文件对齐。 改动方法(2 个文件,各 1 行): - op_kernel/arch35/segsum.h → op_kernel/arch35/segsum_arch35.h(git rename,相似度 99%,仅同步 \file 注释) - op_kernel/arch35/segsum.cpp:#include "segsum.h" → #include "segsum_arch35.h" 未改动项: - include guard 本就是 SEGSUM_ARCH35_H、命名空间本就是 SegsumArch35,无需调整 - 入口源文件 arch35/segsum.cpp 不更名:.cpp 不被 include,由 CMakeLists.txt 的 KERNEL_SRC arch35/segsum.cpp 按显式路径编译,segsum_def.cpp 的 ExtendCfgInfo("opFile.value", "segsum") 也以算子名为准,同名不产生歧义 - 内核入口函数名仍为 segsum;A2 侧 op_kernel/segsum.{cpp,h} 未改动;arch35/segsum_tiling_data.h 无同名冲突,未改动 影响面核查:全仓检索旧名引用,除本次改掉的一处外无其他引用;产物命名不受影响(<op>_apt 目录与 json 取自 OP_NAME 而非文件名,见 cmake/gen_ops_info.cmake);kernel UT 按 KERNEL_SRC 的值 glob 入口文件(cmake/ut.cmake),入口未更名故不受影响;打包用 find -maxdepth 1 -exec cp -r 保留 arch35/ 子目录结构。 ## 关联的Issue - #2852 https://gitcode.com/cann/ops-math/issues/2852 ## 测试 重新出包:bash build.sh --pkg --soc=ascend950 --ops=segsum,编译无 error;出包内 op_impl/ai_core/tbe/custom_math_impl/ascendc/segsum/arch35/ 下已只有 segsum_arch35.h。 真机 Ascend950PR(TTK kernel 模式,-d false -b release,判定取部署 binary 腿): | 档 | 用例数 | 结果 | tilingKey | |---|---|---|---| | 冒烟 | 12 | 12/12 PASS | 1 | | 支持面闸门 | 105 | 105/105 PASS | 1 | | 列条纹分支 case00408(fp32,x=(1,1,20000)) | 1 | 1/1 PASS | 0 | 合计 118/118 PASS;bin_compile_s 全部 BINARY_MATCH,越界检查 bin_oob_result 全 OK,OK,memory_oob_status 全 PASS,两个 tilingKey 分支均已覆盖。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码清理(文件命名规范整改,无功能变更) See merge request: cann/ops-math!5035 | 11 天前 | |
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 | 30 天前 | |
常量折叠和infershape整改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4582 merge master into master 常量折叠和infershape整改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: ## 描述 本 PR 为 6 个 AICPU 算子(add、round、search_sorted、select_v2、square、squared_difference)使能 GE 图编译期常量折叠,并对 search_sorted、select_v2 进行 infershape/OpDef 整改。 ### 变更内容 **1. 常量折叠使能(6 算子)** | 算子 | CMakeLists | kernel 注册 | |------|-----------|-------------| | add | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | round | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | search_sorted | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | select_v2 | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | square | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | squared_difference | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | - 各 kernel 增加 #include "aicpu/math_aicpu_register.h"; - CMakeLists 增加 HOSTCPU TRUE,将算子编入 host 侧折叠 so(libopconstant_folding_math.so)。 **2. infershape / OpDef 整改** - **search_sorted**:新增 op_host/search_sorted_infershape.cpp,实现 InferShape4SearchSorted,输出 shape 取 values(input1)的 shape; - **select_v2**:新增 op_kernel_aicpu/select_v2_aicpu_def.cpp(基于 OpDef 注册输入输出数据类型),删除旧 select_v2.json(JSON 配置方式),统一为 OpDef 注册链路。 ## 关联的Issue #2847 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置与编译,验证 6 个算子 CMakeLists HOSTCPU TRUE 配置变更正确; - 确认 libopconstant_folding_math.so 中已编入上述 6 个算子的 host 侧 kernel。 2. **常量折叠验证** - 输入为常量时,验证算子可在图编译期被折叠求值(host 侧执行),运行期不再下发 device kernel; - 输入为非常量时,验证 device 侧执行逻辑与折叠前保持一致。 3. **InferShape 验证(search_sorted)** - 验证 search_sorted 输出 shape 与 values 输入 shape 一致; - 覆盖多维度、边界 shape 场景。 4. **算子注册/加载验证(select_v2)** - 验证 select_v2 基于 OpDef 注册后接口可正确加载与调用; - 覆盖全数据类型(COMPLEX128/COMPLEX64/DOUBLE/FLOAT/FLOAT16/INT16/INT32/INT64/INT8/UINT16/UINT32/UINT64/UINT8/BOOL)。 5. **算子泛化** - 对 6 个算子执行二级冒烟与泛化用例,确认功能正确性不受影响。 ## 文档更新 本 PR 不涉及 README/aclnn 接口文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4582 | 10 天前 | |
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 | 3 个月前 | |
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 | 3 个月前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5069 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 该 PR 针对 math 仓中 sign、sin、sqrt、sqrt_grad、square、tanh、trunc 共 7 个算子(均位于 op_host/arch35 路径)的宿主侧 tiling 代码进行错误日志统一整改。核心改动包括两方面:一是删除各算子 tiling 流程中大量无业务含义的调试级 OP_LOGD(如 SetTilingData enter.、RunTiling enter. 等入口日志),精简日志输出;二是将算子 tiling 失败时的 elewiseBaseTiling failed 错误日志增强为携带 output dtype 信息,便于在 elewiseBaseTiling 失败时快速定位算子数据类型相关问题。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5069 | 10 天前 | |
【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 | 16 天前 | |
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 | 22 天前 | |
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 | 25 天前 | |
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 | 18 天前 | |
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 | 18 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5069 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 该 PR 针对 math 仓中 sign、sin、sqrt、sqrt_grad、square、tanh、trunc 共 7 个算子(均位于 op_host/arch35 路径)的宿主侧 tiling 代码进行错误日志统一整改。核心改动包括两方面:一是删除各算子 tiling 流程中大量无业务含义的调试级 OP_LOGD(如 SetTilingData enter.、RunTiling enter. 等入口日志),精简日志输出;二是将算子 tiling 失败时的 elewiseBaseTiling failed 错误日志增强为携带 output dtype 信息,便于在 elewiseBaseTiling 失败时快速定位算子数据类型相关问题。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5069 | 10 天前 | |
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 | 16 天前 | |
fix(sinh): 提升FP32计算精度 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !4968 merge fix/sinh-arch35-precision into master fix(sinh): 提升FP32计算精度 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 修复 Ascend 950 Sinh 算子 FP32 计算精度和溢出边界问题。 - 对 exp 分支的 |x| - ln2 使用 hi/lo 拆分及减法残差补偿,降低 FP32 舍入误差。 - 将溢出保护阈值从 90 修正为首个正确舍入结果溢出的 FP32 输入 89.4159927。 - 同步更新算法与溢出保护注释。 ## 关联的Issue []https://gitcode.com/cann/ops-math/issues/2804 ## 测试 - bash build.sh --opkernel --soc=ascend950 --ops=sinh -j8:通过,输出 Build binary success。 - git diff --check origin/master...HEAD:通过。 - clang-format --dry-run --Werror math/sinh/op_kernel/arch35/sinh_dag.h:通过。 现有 op_api UT 不执行 arch35 AICore 数值内核,因此未作为本次精度验证项。 ## 文档更新 同步更新 sinh_dag.h 内算法说明,无外部接口文档变更。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4968 | 11 天前 | |
整改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 | 1 个月前 | |
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 | 15 天前 | |
perf(sort): optimize non-last-axis small sorts Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !5080 merge fix_sort_perf into master perf(sort): optimize non-last-axis small sorts Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 优化 Ascend 950 上 Sort 算子的非末轴小轴场景。现有 no-transpose two-stage 路径主要按相邻 inner 位置分批,在 innerSize 较小、outerSize 较大或 batch 分布不均时,可能出现活跃核不足、每核批次偏多及 UB 索引占用偏大的问题;部分低收益 shape 的 gather/scatter 开销也可能高于前后 transpose。 主要改动: - 新增 Sort 专用非末轴 two-stage 调度 schId 11,将 strided non-last-axis 策略与末轴 Sort、物理连续的 innerSize == 1 场景及 KthValue 原有路由隔离。 - host tiling 支持按完整 outer slice 分组 batch,并为非分组场景采用“优先更多活跃核、其次更少每核批次、最后更少空闲槽位”的选批策略。 - schId 11 在 UB 中使用 uint32 轴内索引,仅在 GM 写回时转换为输出索引类型,以降低 UB 占用;FP32 Sort32 场景增加更宽 inner chunk 候选。 - 新增 SortGroupedOuterSmallAxisTwoStage:block 对齐时通过三维 NDDMA 将 GM [outer, axis, inner] 聚集到密集 UB,否则使用 SIMT gather;排序后通过 SIMT scatter 恢复原始布局。非分组 strided batch 使用二维 NDDMA 加载。 - 为 merge 型非末轴路径增加 bank rotation padding,避免相邻 UB 行反复落在相同 bank group。 - aclnnSort 完善 no-transpose 收益判断:超小 inner row 且 outerSize 较大、整数大轴以及估算输出不小于 1 GiB 时继续走成熟的 transpose 路径。 - 保持既有接口和 dtype 范围不变,并补充 KthValue 回归用例,确保共享 tiling 代码的调整不改变其既有 two-stage 路由。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2882 ## 测试 - Sort 331个ST用例通过,KthValue 108个ST用例通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5080 | 10 天前 | |
[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 | 12 天前 | |
[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 | 19 天前 | |
[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 | 19 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5069 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 该 PR 针对 math 仓中 sign、sin、sqrt、sqrt_grad、square、tanh、trunc 共 7 个算子(均位于 op_host/arch35 路径)的宿主侧 tiling 代码进行错误日志统一整改。核心改动包括两方面:一是删除各算子 tiling 流程中大量无业务含义的调试级 OP_LOGD(如 SetTilingData enter.、RunTiling enter. 等入口日志),精简日志输出;二是将算子 tiling 失败时的 elewiseBaseTiling failed 错误日志增强为携带 output dtype 信息,便于在 elewiseBaseTiling 失败时快速定位算子数据类型相关问题。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5069 | 10 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5069 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 该 PR 针对 math 仓中 sign、sin、sqrt、sqrt_grad、square、tanh、trunc 共 7 个算子(均位于 op_host/arch35 路径)的宿主侧 tiling 代码进行错误日志统一整改。核心改动包括两方面:一是删除各算子 tiling 流程中大量无业务含义的调试级 OP_LOGD(如 SetTilingData enter.、RunTiling enter. 等入口日志),精简日志输出;二是将算子 tiling 失败时的 elewiseBaseTiling failed 错误日志增强为携带 output dtype 信息,便于在 elewiseBaseTiling 失败时快速定位算子数据类型相关问题。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5069 | 10 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5069 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 该 PR 针对 math 仓中 sign、sin、sqrt、sqrt_grad、square、tanh、trunc 共 7 个算子(均位于 op_host/arch35 路径)的宿主侧 tiling 代码进行错误日志统一整改。核心改动包括两方面:一是删除各算子 tiling 流程中大量无业务含义的调试级 OP_LOGD(如 SetTilingData enter.、RunTiling enter. 等入口日志),精简日志输出;二是将算子 tiling 失败时的 elewiseBaseTiling failed 错误日志增强为携带 output dtype 信息,便于在 elewiseBaseTiling 失败时快速定位算子数据类型相关问题。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5069 | 10 天前 | |
fix(square_sum_all): use __ubuf__ for RegBase UB pointers Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !5041 merge quality/square-sum-all-ub-pointer-20260825 into master fix(square_sum_all): use __ubuf__ for RegBase UB pointers Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 将 SquareSumAll arch35 RegBase Kernel 中 12 处 UB 裸指针及 GetPhyAddr 转型的地址空间限定符由 __local_mem__ 规范化为 __ubuf__,符合 arch35 RegBase UB 指针规范。 本次仅修改地址空间限定符。当前 SDK 中二者等价,不改变算子数学实现、归约顺序、精度或性能。 ## 关联的Issue #2862 ## 测试 - [x] arch35 op_kernel 目录 __local_mem__ 零命中 - [x] git diff --check - [x] pre-commit:clang-format、codespell、OAT Compliance Check 等通过 - [x] Ascend 950 SquareSumAll 定向出包编译通过,生成各 dtype/format Kernel 二进制及安装包 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:arch35 RegBase 代码规范及兼容性加固 See merge request: cann/ops-math!5041 | 10 天前 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 11 天前 | |
常量折叠和infershape整改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4582 merge master into master 常量折叠和infershape整改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: ## 描述 本 PR 为 6 个 AICPU 算子(add、round、search_sorted、select_v2、square、squared_difference)使能 GE 图编译期常量折叠,并对 search_sorted、select_v2 进行 infershape/OpDef 整改。 ### 变更内容 **1. 常量折叠使能(6 算子)** | 算子 | CMakeLists | kernel 注册 | |------|-----------|-------------| | add | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | round | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | search_sorted | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | select_v2 | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | square | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | squared_difference | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | - 各 kernel 增加 #include "aicpu/math_aicpu_register.h"; - CMakeLists 增加 HOSTCPU TRUE,将算子编入 host 侧折叠 so(libopconstant_folding_math.so)。 **2. infershape / OpDef 整改** - **search_sorted**:新增 op_host/search_sorted_infershape.cpp,实现 InferShape4SearchSorted,输出 shape 取 values(input1)的 shape; - **select_v2**:新增 op_kernel_aicpu/select_v2_aicpu_def.cpp(基于 OpDef 注册输入输出数据类型),删除旧 select_v2.json(JSON 配置方式),统一为 OpDef 注册链路。 ## 关联的Issue #2847 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置与编译,验证 6 个算子 CMakeLists HOSTCPU TRUE 配置变更正确; - 确认 libopconstant_folding_math.so 中已编入上述 6 个算子的 host 侧 kernel。 2. **常量折叠验证** - 输入为常量时,验证算子可在图编译期被折叠求值(host 侧执行),运行期不再下发 device kernel; - 输入为非常量时,验证 device 侧执行逻辑与折叠前保持一致。 3. **InferShape 验证(search_sorted)** - 验证 search_sorted 输出 shape 与 values 输入 shape 一致; - 覆盖多维度、边界 shape 场景。 4. **算子注册/加载验证(select_v2)** - 验证 select_v2 基于 OpDef 注册后接口可正确加载与调用; - 覆盖全数据类型(COMPLEX128/COMPLEX64/DOUBLE/FLOAT/FLOAT16/INT16/INT32/INT64/INT8/UINT16/UINT32/UINT64/UINT8/BOOL)。 5. **算子泛化** - 对 6 个算子执行二级冒烟与泛化用例,确认功能正确性不受影响。 ## 文档更新 本 PR 不涉及 README/aclnn 接口文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4582 | 10 天前 | |
fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !5071 merge master into master fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 问题背景 fix #2868 https://gitcode.com/cann/ops-math/issues/2868 https://gitcode.com/cann/ops-math/issues/2778 STFT 算子在 atk 批跑精度测试中偶现失败:单跑成功、批跑失败用例不固定,失败时 NPU 输出在部分行的尾部帧输出 0。详细分析见 issue #2868。 ## 根因 STFT AICore kernel 内 **MTE3(UB→GM 异步拷贝,Vector 流水线)与 Cube matmul(读 GM,Cube 流水线)之间缺少跨流水线同步**。三处竞态点: 1. StftPlanMul::Process():plan×window 写 plan workspace 后无等待,主算子 matmul 立即读 2. STFTGeneralized::Process():SplitWindows 写 splitWindow workspace 后无等待 3. STFTGeneralizedComplex::Process():complex 路径同样问题 首次调用时 workspace 为新分配(全 0),matmul 抢先读到未写入数据 → 输出 0;后续调用残留上次正确数据掩盖竞态 → 偶现特性。 ## 修复内容 三处 MTE3 写 workspace 后、Cube matmul 读取前插入 HardEvent::MTE3_S 事件同步: cpp event_t eventIdMTE3ToS = static_cast<event_t>(GetTPipePtr()->FetchEventID(HardEvent::MTE3_S)); SetFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); WaitFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); 顺带清理 stft_tiling_base 中冗余代码:删除从未使用的 l1Size/l0ASize/l0BSize/l0CSize 成员(其中 l0A/B/C 获取时误用 CoreMemType::UB)及重复的 l1SizePlatform 赋值。 ## 验证 Ascend950PR 环境验证: - 修复前:atk 批跑 5 用例通过率约 60%,失败用例轮换 - 修复后:**10 轮 × 5 用例 = 50/50 全部 PASS**;25 次逐次调用(每次不同输入)全部与 CPU 参考一致(max_diff < 1e-4),零值消失 - pre-commit 检查全部通过(clang-format/codespell/OAT 合规) See merge request: cann/ops-math!5071 | 10 天前 | |
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 | 11 天前 | |
[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 | 11 天前 | |
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 | 15 天前 | |
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 | 15 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5069 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 该 PR 针对 math 仓中 sign、sin、sqrt、sqrt_grad、square、tanh、trunc 共 7 个算子(均位于 op_host/arch35 路径)的宿主侧 tiling 代码进行错误日志统一整改。核心改动包括两方面:一是删除各算子 tiling 流程中大量无业务含义的调试级 OP_LOGD(如 SetTilingData enter.、RunTiling enter. 等入口日志),精简日志输出;二是将算子 tiling 失败时的 elewiseBaseTiling failed 错误日志增强为携带 output dtype 信息,便于在 elewiseBaseTiling 失败时快速定位算子数据类型相关问题。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5069 | 10 天前 | |
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 | 11 天前 | |
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 | 12 天前 | |
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 | 15 天前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
[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 | 12 天前 | |
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 | 1 个月前 | |
补充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 | 11 天前 | |
修复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 | 12 天前 | |
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 | 11 天前 | |
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 | 16 天前 | |
针对math仓部分算子错误日志进行统一整改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !5069 merge master into master 针对math仓部分算子错误日志进行统一整改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 该 PR 针对 math 仓中 sign、sin、sqrt、sqrt_grad、square、tanh、trunc 共 7 个算子(均位于 op_host/arch35 路径)的宿主侧 tiling 代码进行错误日志统一整改。核心改动包括两方面:一是删除各算子 tiling 流程中大量无业务含义的调试级 OP_LOGD(如 SetTilingData enter.、RunTiling enter. 等入口日志),精简日志输出;二是将算子 tiling 失败时的 elewiseBaseTiling failed 错误日志增强为携带 output dtype 信息,便于在 elewiseBaseTiling 失败时快速定位算子数据类型相关问题。 ## 关联的Issue 关联Issue[#2853](https://gitcode.com/cann/ops-math/issues/2853) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 修正文档中算子命名不规范问题,打开Ascend950支持选项。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5069 | 10 天前 | |
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 | 18 天前 | |
迁移开源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 | 1 个月前 | |
长尾算子接口资料产品支持情况修改 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 | 12 天前 | |
长尾算子接口资料产品支持情况修改 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 | 12 天前 | |
长尾算子接口资料产品支持情况修改 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 | 12 天前 | |
增加 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 | 25 天前 | |
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 | 1 个月前 | |
增加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 | 8 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 天前 | ||
| 1 个月前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 18 天前 | ||
| 10 天前 | ||
| 21 天前 | ||
| 2 个月前 | ||
| 11 天前 | ||
| 17 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 30 天前 | ||
| 19 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 15 天前 | ||
| 18 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 12 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 15 天前 | ||
| 11 天前 | ||
| 18 天前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 16 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 17 天前 | ||
| 15 天前 | ||
| 18 天前 | ||
| 15 天前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 5 个月前 | ||
| 10 天前 | ||
| 12 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 18 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 17 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 18 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 18 天前 | ||
| 19 天前 | ||
| 18 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 18 天前 | ||
| 12 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 18 天前 | ||
| 15 天前 | ||
| 10 天前 | ||
| 24 天前 | ||
| 11 天前 | ||
| 15 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 18 天前 | ||
| 15 天前 | ||
| 12 天前 | ||
| 1 个月前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 30 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 18 天前 | ||
| 10 天前 | ||
| 18 天前 | ||
| 17 天前 | ||
| 11 天前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 15 天前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 10 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 10 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 30 天前 | ||
| 11 天前 | ||
| 2 个月前 | ||
| 10 天前 | ||
| 15 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 10 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 19 天前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 1 个月前 | ||
| 18 天前 | ||
| 1 个月前 | ||
| 22 天前 | ||
| 22 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 19 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 15 天前 | ||
| 10 天前 | ||
| 18 天前 | ||
| 10 天前 | ||
| 15 天前 | ||
| 16 天前 | ||
| 18 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 18 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 12 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 30 天前 | ||
| 10 天前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 10 天前 | ||
| 16 天前 | ||
| 22 天前 | ||
| 25 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 10 天前 | ||
| 16 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 10 天前 | ||
| 12 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 12 天前 | ||
| 15 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 12 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 12 天前 | ||
| 11 天前 | ||
| 16 天前 | ||
| 10 天前 | ||
| 18 天前 | ||
| 1 个月前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 25 天前 | ||
| 1 个月前 | ||
| 8 个月前 |