本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
子流水线支持更新门禁代码 Co-authored-by: zhangxu-<zhangxu109@huawei.com> # message auto-generated for no-merge-commit merge: !2617 merge master into master 子流水线支持更新门禁代码 Created-by: zhangxu- Commit-by: zhangxu- Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 子流水线支持更新门禁代码 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 线上测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2617 | 3 个月前 | |
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 个月前 | |
refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !2951 merge feature/conversion-dedup into master refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 tiling 基类和模板注册相关定义从 conversion 算子的公共头文件中拆分,消除各 conversion 算子的重复头文件依赖。 ### 改动原因 conversion 目录下 50+ 个算子各自直接引用 tiling_base.h、tiling_util.h 和 tiling_templates_registry.h: - tiling_base.h 包含完整 TilingBaseClass 实现(~240行),每个算子编译时都重复展开 - tiling_templates_registry.h 内混杂 math 算子的模板注册代码,不应被 conversion 算子依赖 ### 改动方法 1. 新建 common/inc/op_host/math_tiling_templates_registry.h:将 math 算子专用的模板注册宏和注册类从此文件中提供 2. 精简 tiling_base.h:改为仅转发引用 tiling_base_class.h 3. 批量更新 conversion 算子文件的 #include: - tiling_base.h → tiling_base_class.h - tiling_util.h → tiling_base_util.h - tiling_templates_registry.h → math_tiling_templates_registry.h 4. 批量更新命名空间引用: - Ops::Math::OpTiling::TilingBaseClass → Ops::Base::TilingBaseClass - Ops::Math::OpTiling::EnsureNotScalar → Ops::Base::EnsureNotScalar ## 关联的Issue - #1672 ## 测试 - 涉及的 conversion 算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,消除重复头文件依赖 See merge request: cann/ops-math!2951 | 3 个月前 | |
refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !2951 merge feature/conversion-dedup into master refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 tiling 基类和模板注册相关定义从 conversion 算子的公共头文件中拆分,消除各 conversion 算子的重复头文件依赖。 ### 改动原因 conversion 目录下 50+ 个算子各自直接引用 tiling_base.h、tiling_util.h 和 tiling_templates_registry.h: - tiling_base.h 包含完整 TilingBaseClass 实现(~240行),每个算子编译时都重复展开 - tiling_templates_registry.h 内混杂 math 算子的模板注册代码,不应被 conversion 算子依赖 ### 改动方法 1. 新建 common/inc/op_host/math_tiling_templates_registry.h:将 math 算子专用的模板注册宏和注册类从此文件中提供 2. 精简 tiling_base.h:改为仅转发引用 tiling_base_class.h 3. 批量更新 conversion 算子文件的 #include: - tiling_base.h → tiling_base_class.h - tiling_util.h → tiling_base_util.h - tiling_templates_registry.h → math_tiling_templates_registry.h 4. 批量更新命名空间引用: - Ops::Math::OpTiling::TilingBaseClass → Ops::Base::TilingBaseClass - Ops::Math::OpTiling::EnsureNotScalar → Ops::Base::EnsureNotScalar ## 关联的Issue - #1672 ## 测试 - 涉及的 conversion 算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,消除重复头文件依赖 See merge request: cann/ops-math!2951 | 3 个月前 | |
refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !2951 merge feature/conversion-dedup into master refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 tiling 基类和模板注册相关定义从 conversion 算子的公共头文件中拆分,消除各 conversion 算子的重复头文件依赖。 ### 改动原因 conversion 目录下 50+ 个算子各自直接引用 tiling_base.h、tiling_util.h 和 tiling_templates_registry.h: - tiling_base.h 包含完整 TilingBaseClass 实现(~240行),每个算子编译时都重复展开 - tiling_templates_registry.h 内混杂 math 算子的模板注册代码,不应被 conversion 算子依赖 ### 改动方法 1. 新建 common/inc/op_host/math_tiling_templates_registry.h:将 math 算子专用的模板注册宏和注册类从此文件中提供 2. 精简 tiling_base.h:改为仅转发引用 tiling_base_class.h 3. 批量更新 conversion 算子文件的 #include: - tiling_base.h → tiling_base_class.h - tiling_util.h → tiling_base_util.h - tiling_templates_registry.h → math_tiling_templates_registry.h 4. 批量更新命名空间引用: - Ops::Math::OpTiling::TilingBaseClass → Ops::Base::TilingBaseClass - Ops::Math::OpTiling::EnsureNotScalar → Ops::Base::EnsureNotScalar ## 关联的Issue - #1672 ## 测试 - 涉及的 conversion 算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,消除重复头文件依赖 See merge request: cann/ops-math!2951 | 3 个月前 | |
modify aclnn invoction guide Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !2888 merge master into master modify aclnn invoction guide Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 优化aclnn API调用方式介绍 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quick_op_invocation.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2888 | 3 个月前 | |
feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2708 merge master into master feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 Add 算子的 C API(asc_simd)风格示例工程 add_example_c_api,展示使用 C API 方式开发 AI Core 算子的完整流程,区别于传统 C++ 类方式的 AscendC API。 ### 改动原因 现有示例仅包含 C++ 类方式(AscendC API)和 AI CPU 方式的算子开发样例,缺少 C API(asc_simd)风格的示例。本 PR 补充了该开发方式的端到端示例,方便开发者参考。 ### 改动方法 1. 新增 examples/add_example_c_api/ 目录,包含完整的算子工程结构: - op_kernel/:使用 C API(asc_simd)实现加法 kernel,核心接口包括 asc_init()、asc_copy_gm2ub_sync()、asc_add_sync()、asc_copy_ub2gm_sync() - op_host/:Tiling 实现、算子定义(OpDef)、InferShape 实现 - op_graph/:图推理(InferShape/InferDataType)及 proto 定义 - examples/:aclnn 调用样例(test_aclnn_add_example_c_api.cpp) 2. 算子定义支持 ascend910b、ascend910_93、ascend950 硬件平台 3. 输入输出仅支持 FLOAT 数据类型,4 维 ND 格式 4. 更新 examples/README.md 添加新示例目录说明和样例表格条目 ## 关联的Issue - #1535 ## 测试 提供 aclnn 调用样例(test_aclnn_add_example_c_api.cpp),使用 32×4×4×4 的 FLOAT 张量进行端到端验证,计算 x1 + x2 = y 并打印结果。 ## 文档更新 - 新增 examples/add_example_c_api/README.md,说明产品支持情况、功能说明、参数说明、约束说明、调用方式和 Kernel 开发方式 - 更新 examples/README.md 添加 add_example_c_api 目录结构和样例表格 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2708 | 3 个月前 | |
refactor: 移除多个算子 tiling 文件中冗余的 tiling_util.h 头文件引用 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2962 merge master into master refactor: 移除多个算子 tiling 文件中冗余的 tiling_util.h 头文件引用 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 本 PR 对多个算子的 tiling 代码进行头文件引用清理和代码格式化,移除不再需要的 op_host/tiling_util.h 引用,统一代码风格。 ### 改动原因 - 多个算子的 tiling 文件中仍残留 #include "op_host/tiling_util.h" 头文件引用,该头文件已不再被使用,属于冗余依赖 - 部分文件的代码格式不统一(行宽、缩进等),需要进行格式化对齐 ### 改动方法 1. **移除冗余头文件**:在以下 24 个算子的 tiling 文件中移除 #include "op_host/tiling_util.h": - axpy_v2, bitwise_and, diag_part, equal, erf, floor, nan_to_num, pow, pow2, real, real_div, reciprocal, reduce_max_v2, reduce_min_v2, reduce_sum_v2, round, rsqrt, rsqrt_grad, select_v2, sign, sign_bits_pack, sign_bits_unpack, sqrt, tanh_grad 2. **equal 算子**:额外移除 #include "op_host/tiling_templates_registry.h",替换为 register/op_impl_registry.h、tiling/platform/platform_ascendc.h、graph/utils/type_utils.h 3. **real 算子**:在移除冗余头文件的基础上,进行代码格式化调整,统一行宽和缩进风格 4. **CI 脚本**(scripts/ci/gen_ci_cmd.py):将 experimental 算子的 CI example 命令生成逻辑从"使用默认算子"改为直接跳过,避免生成无效的测试命令 ## 关联的Issue - #1666 ## 测试 编译验证通过,移除未使用的头文件不影响功能。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 - 移除冗余头文件引用和代码格式化 See merge request: cann/ops-math!2962 | 3 个月前 | |
remove aclnnRfft1d | 2 个月前 | |
fix errors of ophost ut Co-authored-by: LuckySun<sunwenlong8@huawei.com> # message auto-generated for no-merge-commit merge: !2959 merge master into master fix errors of ophost ut Created-by: LuckySun Commit-by: LuckySun Merged-by: cann-robot Description: ## 描述 random_common新增大tensor切分支持后,tilingdata结构体发生变化,导致使用random_common中结构的ut出现预期不一致的问题 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1664 ## 测试 执行bash build.sh -u --ophost --soc=ascend950 -j32用例全部通过 [2026-05-26 16:11:31] [==========] 1601 tests from 348 test suites ran. (18053 ms total) [2026-05-26 16:11:31] [ PASSED ] 1601 tests. ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2959 | 3 个月前 | |
refactor: 移除多个算子 tiling 文件中冗余的 tiling_util.h 头文件引用 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2962 merge master into master refactor: 移除多个算子 tiling 文件中冗余的 tiling_util.h 头文件引用 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 本 PR 对多个算子的 tiling 代码进行头文件引用清理和代码格式化,移除不再需要的 op_host/tiling_util.h 引用,统一代码风格。 ### 改动原因 - 多个算子的 tiling 文件中仍残留 #include "op_host/tiling_util.h" 头文件引用,该头文件已不再被使用,属于冗余依赖 - 部分文件的代码格式不统一(行宽、缩进等),需要进行格式化对齐 ### 改动方法 1. **移除冗余头文件**:在以下 24 个算子的 tiling 文件中移除 #include "op_host/tiling_util.h": - axpy_v2, bitwise_and, diag_part, equal, erf, floor, nan_to_num, pow, pow2, real, real_div, reciprocal, reduce_max_v2, reduce_min_v2, reduce_sum_v2, round, rsqrt, rsqrt_grad, select_v2, sign, sign_bits_pack, sign_bits_unpack, sqrt, tanh_grad 2. **equal 算子**:额外移除 #include "op_host/tiling_templates_registry.h",替换为 register/op_impl_registry.h、tiling/platform/platform_ascendc.h、graph/utils/type_utils.h 3. **real 算子**:在移除冗余头文件的基础上,进行代码格式化调整,统一行宽和缩进风格 4. **CI 脚本**(scripts/ci/gen_ci_cmd.py):将 experimental 算子的 CI example 命令生成逻辑从"使用默认算子"改为直接跳过,避免生成无效的测试命令 ## 关联的Issue - #1666 ## 测试 编译验证通过,移除未使用的头文件不影响功能。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 - 移除冗余头文件引用和代码格式化 See merge request: cann/ops-math!2962 | 3 个月前 | |
ops-math新增spack安装方式 Co-authored-by: moudi123<moudi1@h-partners.com> # message auto-generated for no-merge-commit merge: !2585 merge master into master ops-math新增spack安装方式 Created-by: moudi123 Commit-by: moudi123 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2585 | 3 个月前 | |
fix: 适配gcc升级后的类型转换问题 Co-authored-by: Developer user<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !2960 merge gcc14 into master fix: 适配gcc升级后的类型转换问题 Created-by: jialimin1 Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 适配gcc升级后的类型转换问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试  <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2960 | 3 个月前 | |
update license Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !417 merge master into master update license Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!417 | 8 个月前 | |
docs: 移除 AI Core 算子开发进阶指南文档并清理相关引用 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2879 merge master into master docs: 移除 AI Core 算子开发进阶指南文档并清理相关引用 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 移除 docs/zh/develop/aicore_develop_advanced_guide.md 文档文件(AI Core 算子开发进阶指南),并清理其他文档中对该进阶指南的所有引用链接。 具体改动: - 删除 docs/zh/develop/aicore_develop_advanced_guide.md(1412行) - 清理 docs/zh/develop/aicore_develop_guide.md 中 6 处指向进阶指南的引用(涉及算子原型定义、Tiling实现、Kernel实现、图模式适配、Aclnn适配、代际隔离章节) - 清理 docs/zh/develop/graph_develop_guide.md 中 1 处指向进阶指南的引用(GE图模式原型定义章节) - 更新 .gitignore 添加 .opencode/ 忽略规则 ## 关联的Issue - #1635 ## 测试 - 验证删除文档后,其余文档中无残留的失效链接引用 - 验证剩余文档结构完整,章节衔接自然 ## 文档更新 - 删除了 AI Core 算子开发进阶指南文档 - 清理了 aicore_develop_guide.md 和 graph_develop_guide.md 中的相关引用 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:清理文档引用链接 See merge request: cann/ops-math!2879 | 3 个月前 | |
贡献Ascend C实现的Equal算子 Co-authored-by: fullt<full.fu@huawei.com> # message auto-generated for no-merge-commit merge: !2890 merge equal_v2 into master 贡献Ascend C实现的Equal算子 Created-by: fullt Commit-by: fullt Merged-by: cann-robot Description: ## 描述 贡献Ascend C实现equal算子。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/368 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2890 | 3 个月前 | |
math仓的doc tools 工具检测的低错问题 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !2461 merge master into master math仓的doc tools 工具检测的低错问题 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 处理math仓的doc tools 工具检测的低错问题,包括markdown低错、htlm标签合入、链接是否可以正常跳转 ## 关联的Issue #关联issue#1262 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新全部文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2461 | 3 个月前 | |
refactor: 统一使用CANN公共仓接口管理第三方依赖 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !2816 merge master into master refactor: 统一使用CANN公共仓接口管理第三方依赖 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 将第三方依赖(eigen、protobuf、json、gtest)的构建管理从项目内维护的 cmake 脚本切换为 CANN 公共仓提供的 add_cann_third_party() 接口,统一依赖获取方式。 主要改动: - CMakeLists.txt:移除 4 个 include(cmake/third_party/*.cmake),改用 add_cann_third_party() 下载 eigen、protobuf、json;新增 ENABLE_OPEN_SRC 开关;通过 host_protoc 目标获取 protoc 路径 - cmake/func.cmake:Eigen3::EigenMath → Eigen3::Eigen(5 处);protobuf include 路径更新为公共仓变量;${ABSL_SOURCE_DIR} → ${ABS_INSTALL_DIR};依赖 ascend_protobuf_build_math → host_protoc - cmake/ut.cmake:gtest 改用 add_cann_third_party(gtest) 并创建 ALIAS;Eigen3::EigenMath → Eigen3::Eigen(4 处) - tests/ut/op_kernel_aicpu/CMakeLists.txt:Eigen3::EigenMath → Eigen3::Eigen ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1603 ## 测试 编译通过,UT 用例运行正常,二级冒烟通过 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建系统重构 See merge request: cann/ops-math!2816 | 3 个月前 | |
docs: 补充生态算子精度标准引用 Co-authored-by: chaotang233<tangchao47@hisilicon.com> # message auto-generated for no-merge-commit merge: !2634 merge master into master docs: 补充生态算子精度标准引用 Created-by: chaotang233 Commit-by: chaotang233 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->增加精度标准的索引,确保仓可以引用到精度标准 会议纪要:https://etherpad-cann.meeting.osinfra.cn/p/TSC  ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->CONTRIBUTING.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2634 | 3 个月前 | |
init | 10 个月前 | |
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !2009 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2009 | 4 个月前 | |
modify CANNLab desc Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !2651 merge master into master modify CANNLab desc Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 云开发环境名称由WebIDE更正为CANNLab ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quick_install.md QUICKSTART.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2651 | 3 个月前 | |
math仓的doc tools 工具检测的低错问题 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !2461 merge master into master math仓的doc tools 工具检测的低错问题 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 处理math仓的doc tools 工具检测的低错问题,包括markdown低错、htlm标签合入、链接是否可以正常跳转 ## 关联的Issue #关联issue#1262 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新全部文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2461 | 3 个月前 | |
【描 述】 eigen update to 5.0.0 Co-authored-by: j00427146<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !985 merge master into master 【描 述】 eigen update to 5.0.0 Created-by: jialimin1 Commit-by: j00427146 Merged-by: cann-robot Description: ## 描述 现开源软件eigen 3.4.0 EOM,Eigen 从3.4.0版本升级到5.0.0,解决生命周期问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试   ## 文档更新 SECURITY.md docs/zh/context/build_offline.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Update Eigen to 5.0.0 See merge request: cann/ops-math!985 | 6 个月前 | |
add_example_aicpu修改 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !2237 merge bugfix-0415 into master add_example_aicpu修改 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本PR的具体修改内容如下: 1、修复add_example_aicpu的ut 2、ut说明中添加aicpu的kernel执行 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> issue [#1122](https://gitcode.com/cann/ops-math/issues/1122) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> [2026-04-15 13:01:30] [ RUN ] TEST_AddExample_UT.INT32_VECTOR_ADD_SUCC [2026-04-15 13:01:30] [ OK ] TEST_AddExample_UT.INT32_VECTOR_ADD_SUCC (0 ms) [2026-04-15 13:01:30] [----------] 1 test from TEST_AddExample_UT (0 ms total) [2026-04-15 13:01:30] [2026-04-15 13:01:30] [----------] Global test environment tear-down [2026-04-15 13:01:30] [==========] 1 test from 1 test suite ran. (0 ms total) [2026-04-15 13:01:30] [ PASSED ] 1 test. [2026-04-15 13:01:30] [100%] Built target math_aicpu_op_kernel_ut ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了docs/zh/install/compile.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2237 | 4 个月前 | |
feat: 新增 cannsim 仿真一键运行脚本及 --noexec 编译选项 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2874 merge master into master feat: 新增 cannsim 仿真一键运行脚本及 --noexec 编译选项 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 cannsim 仿真端到端运行脚本 scripts/ci/run_cannsim_example.sh,支持在 Ascend950 平台上对算子执行编译、安装、示例编译和 cannsim 仿真四阶段流程。同时在 build.sh 中新增 --noexec 选项,允许仅编译示例而不执行,便于交叉编译场景下将产物提供给 cannsim 使用。 ### 改动原因 原有 build.sh --run_example 会编译后立即执行示例,无法满足交叉编译+cannsim 仿真的场景需求(目标平台无 NPU 硬件)。需要一个独立的脚本串联构建→安装→编译示例→cannsim 仿真的完整流程。 ### 改动方法 1. **build.sh**: 新增 --noexec 命令行选项,设置 ENABLE_UT_EXEC 变量控制是否执行编译产物;更新 usage 帮助信息。 2. **scripts/ci/run_cannsim_example.sh**: 新增四阶段脚本(Stage 1 构建算子包 → Stage 2 安装算子包 → Stage 3 编译示例 --noexec → Stage 4 运行 cannsim 仿真),支持 --skip-build、--skip-cannsim、--gen-report、--clean、-j 等选项,并输出各阶段耗时统计。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/1632 ## 测试 - 使用 bash build.sh --run_example <op> eager cust --noexec --vendor_name=custom 验证仅编译不执行功能正常 - 使用 bash scripts/ci/run_cannsim_example.sh <op_name> 验证四阶段端到端流程 - 使用 --skip-build、--skip-cannsim、--gen-report、--clean 等选项验证各分支逻辑 ## 文档更新 无文档文件变更,usage 帮助信息已在 build.sh 中更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2874 | 3 个月前 | |
将matmul_compress_dequant算子从math仓迁到nn仓 Co-authored-by: wmg1<wangmingguang2@h-partners.com> # message auto-generated for no-merge-commit merge: !2728 merge test_c into master 将matmul_compress_dequant算子从math仓迁到nn仓 Created-by: wmg1 Commit-by: wmg1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将matmul_compress_dequant算子从math仓迁到nn仓 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。-->https://gitcode.com/cann/ops-math/issues/1507 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:matmulcompressdequant算子迁到nn仓去 See merge request: cann/ops-math!2728 | 3 个月前 | |
fix: 补充文档g++依赖声明并增加install_deps.sh中pkg-config前置检查 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2966 merge master into master fix: 补充文档g++依赖声明并增加install_deps.sh中pkg-config前置检查 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 1. 文档依赖声明补充: docs/zh/install/quick_install.md 中将 gcc >= 7.3.0 修改为 gcc/g++ >= 7.3.0,明确 g++ 为必需依赖,涉及"安装基础依赖"和"Spack 前置依赖"两处。 2. install_deps.sh 增加 pkg-config 前置检查:新增 install_pkg_config() 函数,在安装 googletest 前自动检测并安装 pkg-config(支持 Debian/RHEL/macOS)。同时对 install_googletest() 函数中 pkg-config --exists gtest 调用添加 2>/dev/null 抑制错误输出,并优化安装失败时的提示信息。 ## 关联的Issue - #1670 ## 测试 - 验证在无 pkg-config 环境下执行 install_deps.sh 能自动安装 pkg-config 后继续安装 googletest - 验证文档中依赖声明准确反映实际编译需求 ## 文档更新 - 更新了 docs/zh/install/quick_install.md,补充 g++ 依赖声明 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2966 | 3 个月前 | |
docs: 优化环境部署文档结构,补充基础依赖和构建参数说明 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2404 merge master into master docs: 优化环境部署文档结构,补充基础依赖和构建参数说明 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 重构项目环境部署相关文档,优化安装流程说明结构。将构建工具依赖安装步骤从 compile.md 迁移至 quick_install.md,使开发者在一处即可完成全部环境准备;补充 build.sh 的 --soc 参数支持列表;新增 absl-py 和 jinja2 Python 依赖。 具体改动: 1. README.md:优化源码下载说明措辞,将 WebIDE 提示改为醒目的注释块说明 2. build.sh:新增 --soc 参数所有支持值的说明,列出 ascend910b、ascend910_93、ascend950 等全部 SoC 型号 3. docs/zh/install/compile.md:移除"安装构建工具"章节(已迁移至 quick_install.md) 4. docs/zh/install/quick_install.md:重构手动安装章节,新增"安装基础依赖"小节,整合构建工具和 Python 依赖安装步骤 5. requirements.txt:新增 absl-py>=2.0.0 和 jinja2>=3.1.0 依赖 ## 关联的Issue - #1347 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新了 README.md、docs/zh/install/compile.md、docs/zh/install/quick_install.md 文档内容。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2404 | 4 个月前 | |
依赖cmake公共仓api,降低编译工程复杂度 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2311 merge master into master 依赖cmake公共仓api,降低编译工程复杂度 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 依赖cmake公共仓api,降低编译工程复杂度 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2311 | 4 个月前 |
ops-math
🔥Latest News
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 950DT,可以通过CANN Simulator仿真工具开发调试;在add算子中增加了<<<>>>kernel异构调用示例,方便用户自定义使用;在多个类别中新支持算子concat、lerp、drop_out_v3等。
- [2025/11] 完善多个算子README描述,改进算子开发实例文档及example。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-math项目首次上线。
🚀概述
ops-math是CANN (Compute Architecture for Neural Networks)算子库中提供数值计算的基础算子库,包括conversion类、math类、random类等,覆盖张量形态变换、基础数学运算、随机数生成等场景,子库在架构图中的位置如下。

本仓已集成代码仓库智能体,点击 徽章,进入其专属页面,开启在线智能代码学习与知识问答体验!
📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,命令如下,${tag_version}替换为分支标签名。
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码 。
git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。