本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
添加kirin cpro任务 Co-authored-by: weixin_46515057<lidaoshuai@h-partners.com> # message auto-generated for no-merge-commit merge: !5042 merge master into master 添加kirin cpro任务 Created-by: weixin_46515057 Commit-by: weixin_46515057 Merged-by: cann-robot Description: 添加kirin cpro任务 See merge request: cann/ops-math!5042 | 27 天前 | |
fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5105 merge onnx-fix-0826 into master fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将 math 仓 4 个 onnx 插件的参数解析从旧 API ParseParamsFn(const Message*, ge::Operator&) 迁移至新 API ParseParamsByOperatorFn(const ge::Operator&, ge::Operator&),并补齐 framework 层 UT 构建体系与用例。 本次修改: 1. **插件 API 迁移**:Cast/NPUDtypeCast(math/cast)、Shape(math/shape)、NPUFormatCast(conversion/npu_format_cast)、NPURotaryMul(common)4 个插件的注册函数切换为 ParseParamsByOperatorFn,头文件依赖收敛为 graph/operator.h + register/register.h;空实现保持签名兼容并显式标记未使用参数,消除 -Wunused-parameter 告警(-Werror 下构建必须)。 2. **framework 层 UT 支持**:cmake/ut.cmake 新增 OP_FRAMEWORK_MODULE_NAME 及 add_framework_ut_modules,cmake/func.cmake 的 add_all_ut_sources 增加 framework 用例收集,tests/ut/op_host/CMakeLists.txt 将 math_op_framework_ut_cases 链接进 math_op_host_ut 并补充 graph_base 依赖(修复缺符号链接失败)。 3. **新增 UT 用例**:为上述 4 个插件补充 tests/ut/framework/test_*_onnx_plugin.cpp 用例(含 Shape 的 dtype=INT64 校验),并通过 common/tests 与各算子 tests/ut 的 CMakeLists 纳入构建。 ## 关联的Issue Issue #2892 ## 测试 1. pre-commit run(变更文件):全部通过,包括 clang-format、codespell 与 OAT 合规检查。 2. 容器内(CANN 9.0.0, Ascend 910B3)增量重建 math_op_host_ut 并运行:1853 tests from 303 test suites,**全部 PASSED**。 3. 新增 4 个 framework 用例(OnnxNpuDtypePluginTest / OnnxShapePluginTest / OnnxNpuFormatCastPluginTest / OnnxNpuRotaryMulPluginTest)均执行通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5105 | 26 天前 | |
fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5105 merge onnx-fix-0826 into master fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将 math 仓 4 个 onnx 插件的参数解析从旧 API ParseParamsFn(const Message*, ge::Operator&) 迁移至新 API ParseParamsByOperatorFn(const ge::Operator&, ge::Operator&),并补齐 framework 层 UT 构建体系与用例。 本次修改: 1. **插件 API 迁移**:Cast/NPUDtypeCast(math/cast)、Shape(math/shape)、NPUFormatCast(conversion/npu_format_cast)、NPURotaryMul(common)4 个插件的注册函数切换为 ParseParamsByOperatorFn,头文件依赖收敛为 graph/operator.h + register/register.h;空实现保持签名兼容并显式标记未使用参数,消除 -Wunused-parameter 告警(-Werror 下构建必须)。 2. **framework 层 UT 支持**:cmake/ut.cmake 新增 OP_FRAMEWORK_MODULE_NAME 及 add_framework_ut_modules,cmake/func.cmake 的 add_all_ut_sources 增加 framework 用例收集,tests/ut/op_host/CMakeLists.txt 将 math_op_framework_ut_cases 链接进 math_op_host_ut 并补充 graph_base 依赖(修复缺符号链接失败)。 3. **新增 UT 用例**:为上述 4 个插件补充 tests/ut/framework/test_*_onnx_plugin.cpp 用例(含 Shape 的 dtype=INT64 校验),并通过 common/tests 与各算子 tests/ut 的 CMakeLists 纳入构建。 ## 关联的Issue Issue #2892 ## 测试 1. pre-commit run(变更文件):全部通过,包括 clang-format、codespell 与 OAT 合规检查。 2. 容器内(CANN 9.0.0, Ascend 910B3)增量重建 math_op_host_ut 并运行:1853 tests from 303 test suites,**全部 PASSED**。 3. 新增 4 个 framework 用例(OnnxNpuDtypePluginTest / OnnxShapePluginTest / OnnxNpuFormatCastPluginTest / OnnxNpuRotaryMulPluginTest)均执行通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5105 | 26 天前 | |
feat: 9个迁移算子适配unknown shape/rank及混合动态shape InferShape并补UT及入口日志(canndev日落) canndev日落算子解耦迁移(skill: canndev-op-decouple),涉及9个算子: MatrixDiagPart/SparseReshape/Trilu/CosineSimilarity/ProdForceSeA/ ProdVirialSeA/SparseBincount/StrideAdd/Trace InferShape逻辑变更(仅放宽动态shape场景,nullptr等异常输入拦截保持不变): - SparseReshape: indices.shape[1]==shape.shape[0]校验增加逐维-1跳过 - CosineSimilarity: broadcast推导增加-1逐维通配(任一侧-1则该维输出-1) - ProdForceSeA: 删除任一输入unknown shape整体置{-1,-1,-1}的分支,改为帧数 一致性校验逐维-1免疫;natoms为unknown shape时跳过值读取、nall置-1 (保留已知坐标维3) UT: - 全-1/全-2用例9个算子补充 - 混合动态shape({-1,2,4,-1}部分未知、{{-1,2,4,-1},{-2}}多输入混合)用例 全部PASSED(9算子逐跑共140用例) 既有问题修复: - matrix_diag_part/sparse_reshape/add_example/expandv/radix_sort/ sparse_bincount/stride_add共7个tiling UT的全局soc_version_infos加static, 修复多算子合并链接重复定义(各文件取值不同,static各自留存) 注:含本提交前工作区已有的格式化改动(clang-format风格统一) | 22 天前 | |
docs: mark Ascend 950 ACLNN support for unary ops Co-authored-by: leaving__<B24040621@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !5034 merge docs/enable-ascend950-aclnn-support into master docs: mark Ascend 950 ACLNN support for unary ops Created-by: leaving__ Commit-by: leaving__ Merged-by: cann-robot Description: ## 描述 历史算子共性问题排查 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2843 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5034 | 26 天前 | |
feat: 9个迁移算子适配unknown shape/rank及混合动态shape InferShape并补UT及入口日志(canndev日落) canndev日落算子解耦迁移(skill: canndev-op-decouple),涉及9个算子: MatrixDiagPart/SparseReshape/Trilu/CosineSimilarity/ProdForceSeA/ ProdVirialSeA/SparseBincount/StrideAdd/Trace InferShape逻辑变更(仅放宽动态shape场景,nullptr等异常输入拦截保持不变): - SparseReshape: indices.shape[1]==shape.shape[0]校验增加逐维-1跳过 - CosineSimilarity: broadcast推导增加-1逐维通配(任一侧-1则该维输出-1) - ProdForceSeA: 删除任一输入unknown shape整体置{-1,-1,-1}的分支,改为帧数 一致性校验逐维-1免疫;natoms为unknown shape时跳过值读取、nall置-1 (保留已知坐标维3) UT: - 全-1/全-2用例9个算子补充 - 混合动态shape({-1,2,4,-1}部分未知、{{-1,2,4,-1},{-2}}多输入混合)用例 全部PASSED(9算子逐跑共140用例) 既有问题修复: - matrix_diag_part/sparse_reshape/add_example/expandv/radix_sort/ sparse_bincount/stride_add共7个tiling UT的全局soc_version_infos加static, 修复多算子合并链接重复定义(各文件取值不同,static各自留存) 注:含本提交前工作区已有的格式化改动(clang-format风格统一) | 22 天前 | |
feat: 9个迁移算子适配unknown shape/rank及混合动态shape InferShape并补UT及入口日志(canndev日落) canndev日落算子解耦迁移(skill: canndev-op-decouple),涉及9个算子: MatrixDiagPart/SparseReshape/Trilu/CosineSimilarity/ProdForceSeA/ ProdVirialSeA/SparseBincount/StrideAdd/Trace InferShape逻辑变更(仅放宽动态shape场景,nullptr等异常输入拦截保持不变): - SparseReshape: indices.shape[1]==shape.shape[0]校验增加逐维-1跳过 - CosineSimilarity: broadcast推导增加-1逐维通配(任一侧-1则该维输出-1) - ProdForceSeA: 删除任一输入unknown shape整体置{-1,-1,-1}的分支,改为帧数 一致性校验逐维-1免疫;natoms为unknown shape时跳过值读取、nall置-1 (保留已知坐标维3) UT: - 全-1/全-2用例9个算子补充 - 混合动态shape({-1,2,4,-1}部分未知、{{-1,2,4,-1},{-2}}多输入混合)用例 全部PASSED(9算子逐跑共140用例) 既有问题修复: - matrix_diag_part/sparse_reshape/add_example/expandv/radix_sort/ sparse_bincount/stride_add共7个tiling UT的全局soc_version_infos加static, 修复多算子合并链接重复定义(各文件取值不同,static各自留存) 注:含本提交前工作区已有的格式化改动(clang-format风格统一) | 22 天前 | |
feat: 9个迁移算子适配unknown shape/rank及混合动态shape InferShape并补UT及入口日志(canndev日落) canndev日落算子解耦迁移(skill: canndev-op-decouple),涉及9个算子: MatrixDiagPart/SparseReshape/Trilu/CosineSimilarity/ProdForceSeA/ ProdVirialSeA/SparseBincount/StrideAdd/Trace InferShape逻辑变更(仅放宽动态shape场景,nullptr等异常输入拦截保持不变): - SparseReshape: indices.shape[1]==shape.shape[0]校验增加逐维-1跳过 - CosineSimilarity: broadcast推导增加-1逐维通配(任一侧-1则该维输出-1) - ProdForceSeA: 删除任一输入unknown shape整体置{-1,-1,-1}的分支,改为帧数 一致性校验逐维-1免疫;natoms为unknown shape时跳过值读取、nall置-1 (保留已知坐标维3) UT: - 全-1/全-2用例9个算子补充 - 混合动态shape({-1,2,4,-1}部分未知、{{-1,2,4,-1},{-2}}多输入混合)用例 全部PASSED(9算子逐跑共140用例) 既有问题修复: - matrix_diag_part/sparse_reshape/add_example/expandv/radix_sort/ sparse_bincount/stride_add共7个tiling UT的全局soc_version_infos加static, 修复多算子合并链接重复定义(各文件取值不同,static各自留存) 注:含本提交前工作区已有的格式化改动(clang-format风格统一) | 22 天前 | |
fix: align multinomial sampling with normalized probabilities Co-authored-by: fenglin28<fenglin28@huawei.com> # message auto-generated for no-merge-commit merge: !4500 merge fix/stateless-sample-multinomial-assert into master fix: align multinomial sampling with normalized probabilities Created-by: fenglin28 Commit-by: fenglin28 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 StatelessSampleMultinomial 边界场景下的采样行为: - 在二分查找前检查 CDF 最后一项是否大于 0 - 新增可选输入 norm_probs,用于准确判断零概率类别 - norm_probs 存在时,使用 x 执行二分查找,使用 norm_probs 处理零概率类别回退;缺省时保留基于相邻 CDF 值的兼容路径 - 增加 x 的维度校验,以及 x 与 norm_probs 的形状一致性校验 - 同步更新算子定义、L0 接口、tiling、kernel 配置、UT 和 README ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2558 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 完整通过 UT、泛化 ST 及流水线验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新 README 中 x 和 norm_probs 的输入及约束说明 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4500 | 27 天前 | |
fix: 增强proto识别正则对空行的健壮性并规范化脚本风格 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !5070 merge worktree/vc5 into master fix: 增强proto识别正则对空行的健壮性并规范化脚本风格 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 增强 scripts/util/merge_proto.py 中 op proto 识别正则的健壮性,并规范化脚本代码格式。 - **正则健壮性**:OP_DEF_PATTERN 中 guard 分支的分隔匹配由 \n 调整为 \n+?,使 #ifndef 守卫与 #endif 之间存在空行时,REG_OP 定义仍能被正确识别合并,避免因空行导致守卫分支匹配失败、算子原型丢失。 - **风格规范化**:字符串引号由单引号统一为双引号(open、argparse nargs、f-string 等);移除 if __name__ 后续空行的行尾空白;补齐文件末尾换行符。 ## 关联的Issue - #2878 ## 测试 本 PR 属脚本级正则与风格调整,未新增测试用例,也未随 PR 附带测试数据。建议通过以下方式验证:对包含 #ifndef...#endif 守卫(且守卫与 #endif 间含空行)的 *_proto.h / *_proto_extend.h 执行 scripts/util/merge_proto.py,确认 REG_OP 定义能被完整识别并合并到输出头文件。 ## 文档更新 本 PR 不涉及文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5070 | 27 天前 | |
设置spack脚本set -e,使其有错误也会继续执行,消除codecheck告警 Co-authored-by: moudi123<moudi1@h-partners.com> # message auto-generated for no-merge-commit merge: !3109 merge master into master 设置spack脚本set -e,使其有错误也会继续执行,消除codecheck告警 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!3109 | 3 个月前 | |
fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5105 merge onnx-fix-0826 into master fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将 math 仓 4 个 onnx 插件的参数解析从旧 API ParseParamsFn(const Message*, ge::Operator&) 迁移至新 API ParseParamsByOperatorFn(const ge::Operator&, ge::Operator&),并补齐 framework 层 UT 构建体系与用例。 本次修改: 1. **插件 API 迁移**:Cast/NPUDtypeCast(math/cast)、Shape(math/shape)、NPUFormatCast(conversion/npu_format_cast)、NPURotaryMul(common)4 个插件的注册函数切换为 ParseParamsByOperatorFn,头文件依赖收敛为 graph/operator.h + register/register.h;空实现保持签名兼容并显式标记未使用参数,消除 -Wunused-parameter 告警(-Werror 下构建必须)。 2. **framework 层 UT 支持**:cmake/ut.cmake 新增 OP_FRAMEWORK_MODULE_NAME 及 add_framework_ut_modules,cmake/func.cmake 的 add_all_ut_sources 增加 framework 用例收集,tests/ut/op_host/CMakeLists.txt 将 math_op_framework_ut_cases 链接进 math_op_host_ut 并补充 graph_base 依赖(修复缺符号链接失败)。 3. **新增 UT 用例**:为上述 4 个插件补充 tests/ut/framework/test_*_onnx_plugin.cpp 用例(含 Shape 的 dtype=INT64 校验),并通过 common/tests 与各算子 tests/ut 的 CMakeLists 纳入构建。 ## 关联的Issue Issue #2892 ## 测试 1. pre-commit run(变更文件):全部通过,包括 clang-format、codespell 与 OAT 合规检查。 2. 容器内(CANN 9.0.0, Ascend 910B3)增量重建 math_op_host_ut 并运行:1853 tests from 303 test suites,**全部 PASSED**。 3. 新增 4 个 framework 用例(OnnxNpuDtypePluginTest / OnnxShapePluginTest / OnnxNpuFormatCastPluginTest / OnnxNpuRotaryMulPluginTest)均执行通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5105 | 26 天前 | |
feat: 构建脚本增加 --ccache 参数控制,支持编译时禁用 ccache Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !3509 merge master into master feat: 构建脚本增加 --ccache 参数控制,支持编译时禁用 ccache Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 为 build.sh 新增 --ccache=<VALUE> 构建选项,支持在编译时显式启用或禁用 ccache 缓存加速。默认行为保持开启(ENABLE_CCACHE=TRUE),当传入 --ccache=off/false/disable 时关闭 ccache。同时在 cmake/gen_ops_info.cmake 增加一行 _ASCENDC_ENV_VAR 的 message(STATUS ...) 调试输出。 ### 改动详情 - **build.sh** - 在 SUPPORTED_LONG_OPTS 中注册 ccache= 长选项 - checkopts() 中初始化 ENABLE_CCACHE=TRUE,新增 ccache=*) 分支解析 VALUE:值为 off/false/disable 时置 ENABLE_CCACHE=FALSE - assemble_cmake_args() 中追加 CMAKE_ARGS="$CMAKE_ARGS -DENABLE_CCACHE=${ENABLE_CCACHE}",将开关透传给 cmake - 在全部 8 处 usage 帮助文本中补充 --ccache=<VALUE> 说明(VALUE: on/off/true/false/disable,Default: on) - **cmake/gen_ops_info.cmake** - 在 prepare_compile_from_config 的 CCACHE_PROGRAM 块后新增 message(STATUS "_ASCENDC_ENV_VAR: ${_ASCENDC_ENV_VAR}") 调试输出 ## 关联的Issue - #2039 ## 测试 - 构建验证:bash build.sh --ophost --ccache=on(默认开启)与 bash build.sh --ophost --ccache=off(显式关闭)均构建正常,-DENABLE_CCACHE 参数按预期透传给 cmake ## 文档更新 - 无单独文档更新;构建选项说明已通过 build.sh 内 usage 帮助文本同步更新 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3509 | 2 个月前 | |
迁移开源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 个月前 | |
aclnnReduceProd 用例修改 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !4271 merge prod into master aclnnReduceProd 用例修改 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 aclnnReduceProd 用例修改 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2398 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4271 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !4332 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改AIDD扫描的核心资料问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2415](https://gitcode.com/cann/ops-math/issues/2415) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quick_op_invocation.md cross_platform_migration_guide.md op_list.md aicpu_develop_guide.md ... ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4332 | 1 个月前 | |
feat: 支持 deb/rpm 包构建 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4178 merge master into master feat: 支持 deb/rpm 包构建 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 为 ops-math 构建系统新增 deb/rpm 包构建能力,支持通过 --pkg-type 参数选择构建 run / rpm / deb / all 四种包类型。 ### 改动原因 当前 ops-math 仅支持生成 .run 自解压安装包,无法满足 Linux 发行版原生包管理的需求。 ### 改动方法 1. CMake 层面:新增 PACKAGE_TYPE 缓存变量(run/rpm/deb/all),升级 cann-cmake 依赖到 master-045 2. 构建脚本:build.sh 新增 --pkg-type=<TYPE> 参数,build_lib.sh 实现 rpm/deb 构建/清理/收集逻辑 3. CI 重新打包:ops_run_repackage.sh 支持 --pkg-type,在生成 .run 包后调用 ops_generate_rpm_deb.sh 4. 包管理钩子:新增 custom_postinst.sh 和 custom_prerm.sh 用于安装后/卸载前的 pip wheel 管理 5. 包配置更新:ops_math.xml 移除 EngineeringFiles,调整目录权限,添加版权头 ## 关联的Issue - #2460 ## 测试 - 本地验证 --pkg-type 参数校验逻辑 - CI 流水线已通过 ## 文档更新 - 更新 docs/zh/install/compile.md 中 cann-cmake 版本信息 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 See merge request: cann/ops-math!4178 | 1 个月前 | |
docs(contributing): 补充子场景 Tiling 文件与 _tiling 命名约束 Co-authored-by: chensi79<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !4253 merge fix/issue-2314-tiling-naming-doc into master docs(contributing): 补充子场景 Tiling 文件与 _tiling 命名约束 Created-by: chensi79 Commit-by: chensi79 Merged-by: cann-robot Description: ## 描述 补充子场景 Tiling 交付件说明与 _tiling 命名约束: - CONTRIBUTING.md 附录目录树补充 ${op_name}_tiling_${sub_case}.cpp/.h 两个可选子场景 Tiling 交付件,并在附录增加指向 docs/zh/install/dir_structure.md 的链接,同时说明 op_host 下 Tiling 实现文件名须包含 _tiling 标识才会被编译系统识别。 - docs/zh/install/dir_structure.md 针对 ${op_name}_tiling_${sub_case}.cpp 补充同名命名约束说明。 根因:cmake/func.cmake 通过 file(GLOB ... *_tiling*.cpp) 收集 Tiling 源文件参与编译,不含 _tiling 的文件不会被 glob 命中,因而静默不编译。该约束此前未在文档中披露。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2314 ## 测试 执行 bash build.sh --ophost 验证文档变更不影响编译,构建通过([100%] Built target ophost_math,EXIT_CODE=0)。 ## 文档更新 - CONTRIBUTING.md:附录目录树补充子场景 Tiling 文件、增加 dir_structure.md 链接、补充 _tiling 命名约束 - docs/zh/install/dir_structure.md:补充 _tiling 命名约束说明 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4253 | 1 个月前 | |
init | 11 个月前 | |
expint 算子开发 Co-authored-by: kangjiaming<1159380836@qq.com> # message auto-generated for no-merge-commit merge: !3864 merge expint into master expint 算子开发 Created-by: kangjiaming Commit-by: kangjiaming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/2212 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3864 | 2 个月前 | |
docs: 在README Latest News中新增Ascend 950系列算子支持与新特性介绍 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4379 merge master into master docs: 在README Latest News中新增Ascend 950系列算子支持与新特性介绍 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 在 README.md 的 Latest News 中新增条目,介绍 Ascend 950 系列最新算子支持与新特性: - 新增算子:CumulativeLogSumExp、MatrixSetDiagV2、DropoutV3Grad、SignBitsUnpack、ProdVirialSeA - 新特性:FLOAT8/FLOAT4 低精度类型支持、Philox PRNG 随机数生成、Reg 接口迁移 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新了 README.md 文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4379 | 1 个月前 | |
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 | 4 个月前 | |
【描 述】 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 | 7 个月前 | |
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 | 5 个月前 | |
refactor: 将 build.sh 拆分为模块化构建脚本 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4239 merge master into master refactor: 将 build.sh 拆分为模块化构建脚本 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 将 ops-math 工程中原本约 1700 行的单体构建脚本 build.sh,按职责拆分为 8 个独立子脚本,放在 scripts/ 目录下。拆分后的 build.sh 仅作为入口,负责引入各模块并调用 main() 主流程统一调度,功能逻辑完全保持不变。 ### 改动原因 原始的 build.sh 将所有构建逻辑(配置管理、参数解析、编译、打包、UT、Example、GenOp 等)集中在一个文件中,代码量庞大(~1738 行),不利于维护和团队协作。本次重构将不同职责的代码分离到独立脚本中,提升可读性和可维护性。 ### 改动方法 - build.sh:精简为入口脚本(~70 行),定义环境变量,按序 source 各模块子脚本,定义 main() 统一调度构建流程 - 各子脚本按职责划分: - scripts/build.conf.sh(106 行):全局配置、变量定义、公共工具函数 - scripts/build_clean.sh(57 行):构建产物清理 - scripts/build_options.sh(846 行):命令行选项解析、校验、帮助信息展示 - scripts/build_cmake.sh(167 行):CMake 初始化与配置 - scripts/build_lib.sh(209 行):库编译、二进制编译、打包 - scripts/build_ut.sh(24 行):单元测试构建 - scripts/build_example.sh(284 行):示例代码构建 - scripts/build_genop.sh(59 行):GenOp 算子代码生成 ## 关联的Issue - #2381 https://gitcode.com/cann/ops-math/issues/2300 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 See merge request: cann/ops-math!4239 | 1 个月前 | |
grouped_bias_add_grad误用的arch32统一改为arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !4964 merge arch32-fix-groupaddbias into master grouped_bias_add_grad误用的arch32统一改为arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将math/grouped_bias_add_grad算子中误用arch32的目录及代码引用统一修正为arch22, 与ascend910_93/ascend910b对应arch22的架构目录约定保持一致: 1. 目录重命名(3处): - math/grouped_bias_add_grad/op_host/arch32 -> arch22 - math/grouped_bias_add_grad/op_kernel/arch32 -> arch22 - math/grouped_bias_add_grad/tests/ut/op_host/arch32 -> arch22 2. 内容替换(8个文件): - CMakeLists.txt中SUPPORT_TILING_DIR由"arch32" "arch32" "arch35"修正为"arch22" "arch22" "arch35" - grouped_bias_add_grad.cpp中的op_kernel include路径 - op_host/op_kernel UT中的include路径与CMake引用 - cmake/func.cmake、docs/zh/develop/aicore_develop_guide.md中的arch目录示例 3. 同步更新classify_rule.yaml中2处math/grouped_bias_add_grad路径条目。 【影响范围】 - 涉及算子:grouped_bias_add_grad ## 关联的Issue Issue #2749 ## 测试 - 算子编译及ut通过 - math目录下rg检索arch32(含Arch32/ARCH32)无残留 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4964 | 29 天前 | |
fix: 修复 install_deps.sh 中管道与 source 场景被 run_command 吞输出的问题 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !3865 merge fix/issue-2143-install-deps-pipe into master fix: 修复 install_deps.sh 中管道与 source 场景被 run_command 吞输出的问题 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 修复 install_deps.sh 中 run_command 与管道 / source 配合使用时的两类缺陷。 ### 根因 run_command() 用 output=$("$@" 2>&1) 捕获被包裹命令的标准输出,成功时只重新输出自身的 "Executing command: ..." 日志行。两类调用语义被破坏: 1. **管道场景**(install_cmake Ubuntu 18.04 分支,原 L220/L221):下游(gpg --dearmor、sudo tee)实际收到的是日志行而非真实 payload,Kitware 源 key 与 sources.list 导入失败。 2. **source 场景**(install_python/install_gcc 的 RHEL/CentOS 7 与 macOS 分支,原 L98/L107/L170/L183):run_command source X 在 $(...) 子 shell 中执行 source,导出的环境变量无法进入当前脚本。 ### 改动 去掉这 6 处调用点的 run_command 包裹: - L220 run_command wget -O - ... | gpg --dearmor - | sudo tee ... → wget -O - ... | gpg --dearmor - | sudo tee ... - L221 run_command echo 'deb [signed-by=...]' | sudo tee ... → echo 'deb [signed-by=...]' | sudo tee ... - L98/L107/L170/L183 run_command source X → source X 其余 30+ 处 run_command sudo apt/dnf install ... / run_command brew install ... 调用保持原样——这些场景下 run_command 工作正常(吞 stdout 反而让脚本输出更干净),且仍提供失败诊断。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2143 ## 测试 - bash -n install_deps.sh 语法检查通过 - 最小逻辑验证(参考 Issue #2143 中的复现用例): - 修复前:run_command printf hello | wc -c 输出 32(下游收到 Executing command: printf hello\n,hello 内容被吞) - 修复后:printf hello | wc -c 输出 5(下游收到真实 payload) ## 文档更新 无(仅修复脚本,未涉及文档) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3865 | 2 个月前 | |
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 个月前 | |
chore: bump ops_math version from 9.0.0 to 9.1.0 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !3268 merge fix/issue-1843-version-cmake into master chore: bump ops_math version from 9.0.0 to 9.1.0 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新 version.cmake 中 ops_math 包的默认版本号从 9.0.0 到 9.1.0,与当前已发布的 9.1.0 版本及其他 CANN 仓库保持一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1843 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 仅版本号修改,通过 diff 确认改动正确。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:版本号更新 See merge request: cann/ops-math!3268 | 2 个月前 |
ops-math
🔥Latest News
- [2026/07] 新增支持Ascend 950系列算子及新特性,涵盖CumulativeLogSumExp、MatrixSetDiagV2、DropoutV3Grad、SignBitsUnpack、ProdVirialSeA等算子;引入FLOAT8/FLOAT4低精度类型支持、Philox PRNG随机数生成、Reg接口迁移等新特性。
- [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}替换为分支标签名。以9.0.0分支源码下载为例:
# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git
git clone -b 9.0.0 https://gitcode.com/cann/ops-math.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。