本项目是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 个月前 | |
批量修改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 个月前 | |
reducesum新增batch一致性 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !3442 merge reducesum_batchinvariant into master reducesum新增batch一致性 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> reducesum实现batch一致性,单算子侧进行对应适配,主要是获取batch一致性开关以及使用新的模板key ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3442 | 2 个月前 | |
fix: fix several binary ops data type promote bug Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !2215 merge brc_aclnn_fix into master fix: fix several binary ops data type promote bug Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 改动概述 为比较算子适配 **Ascend 950 (RegBase)** 平台 dtype 处理逻辑,优化类型推导和计算性能。 **主要改动**: - 新增公共类型推导工具(张量+标量混合运算支持) - 8 个比较算子 RegBase 平台类型推导适配 - Maximum/Minimum 算子计算类型优化(减少 30%~50% Cast 操作) - 补充 RegBase 平台测试用例(18 个新增测试) --- ## 详细改动内容 ### 1. 新增公共工具函数 **文件**: common/inc/op_api/data_type_utils.h (新增 160 行) **核心函数**: - BinaryOpTypePromote - 双输入类型推导(支持张量+标量) - CombineCategoriesWithComplex - 混合运算类型推导 - IsMaxMinSafeInputDtype - 计算安全性判断 ### 2. 比较算子类型推导适配 修改 8 个算子类型推导逻辑: - Equal、NotEqual、Greater、GreaterEqual、Less、LessEqual - Maximum、Minimum(含性能优化) **策略**:RegBase 使用 BinaryOpTypePromote,其他平台使用 PromoteType ### 3. Maximum/Minimum 性能优化 **优化效果**:减少 30%~50% Cast 操作次数 **新增验证**:computeType 有效性检查,防止未定义类型错误 ### 4. 测试用例 新增 18 个 RegBase 平台测试,覆盖: - 张量+标量混合运算 - 不同数据类型组合 - 输出类型与计算类型差异场景 --- ## 平台支持 | 平台 | 类型推导 | 特性 | |------|---------|------| | Ascend910 | PromoteType | 基础类型 | | Ascend910B | PromoteType | +BF16 | | Ascend950 | BinaryOpTypePromote | +UINT64,扩展支持 | --- ## 测试验证 ✅ 单元测试通过 ✅ OAT 检查通过 ✅ Git Hooks 检查通过 --- ## 改动统计 +587 行,-185 行 15 文件修改 --- See merge request: cann/ops-math!2215 | 2 个月前 | |
feat: 迁移 Conj 与 ConjugateTranspose AICPU 算子(含 infershape rt1→rt2) 从 canndev 迁移两个 AICPU 算子到 ops-math: - Conj → math/conj/ - ConjugateTranspose → conversion/conjugate_transpose/ 交付件(每算子): - op_graph: proto(REG_OP) + InferDataType(输出 dtype = 输入 dtype) - op_host: infershape(rt2;canndev 无 rt2,按 rt1 语义适配为 rt2) - op_kernel_aicpu: kernel(Compute) + opdef 元数据 - examples: 图模式 GE example - tests/ut: infershape UT + kernel UT - README infershape 说明: - Conj 为 element-wise,复用 Ops::Base::InferShape4Elewise。 - ConjugateTranspose 按 perm 常量重排 + InputsDataDependency({perm}); perm 校验为非负 [0, rank-1],与本算子 kernel、canndev rt1、TF 语义一致。 docs/zh/op_list.md 补充两算子条目。 代码经 codecheck 清理并通过 pre-commit(clang-format) 统一格式。 验证(Ascend 910B 真机):op_host UT 8/8、AICPU kernel UT 11/11、 打包/安装成功,两个 graph example 结果正确且走 AICPU custom scheduler。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> | 1 个月前 | |
feat: 迁移 Conj 与 ConjugateTranspose AICPU 算子(含 infershape rt1→rt2) 从 canndev 迁移两个 AICPU 算子到 ops-math: - Conj → math/conj/ - ConjugateTranspose → conversion/conjugate_transpose/ 交付件(每算子): - op_graph: proto(REG_OP) + InferDataType(输出 dtype = 输入 dtype) - op_host: infershape(rt2;canndev 无 rt2,按 rt1 语义适配为 rt2) - op_kernel_aicpu: kernel(Compute) + opdef 元数据 - examples: 图模式 GE example - tests/ut: infershape UT + kernel UT - README infershape 说明: - Conj 为 element-wise,复用 Ops::Base::InferShape4Elewise。 - ConjugateTranspose 按 perm 常量重排 + InputsDataDependency({perm}); perm 校验为非负 [0, rank-1],与本算子 kernel、canndev rt1、TF 语义一致。 docs/zh/op_list.md 补充两算子条目。 代码经 codecheck 清理并通过 pre-commit(clang-format) 统一格式。 验证(Ascend 910B 真机):op_host UT 8/8、AICPU kernel UT 11/11、 打包/安装成功,两个 graph example 结果正确且走 AICPU custom scheduler。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> | 1 个月前 | |
fix: 修复 add_example 头文件 include guard 宏名错误 (#1616) Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !3637 merge fix/add-example-include-guard-1616 into master fix: 修复 add_example 头文件 include guard 宏名错误 (#1616) Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 修复内容 修复 issue #1616 中反馈的头文件 include guard 宏名错误: 1. **add_example_tiling_data.h**:include guard 从 _ROTARY_POSITION_EMBEDDING_GRAD_TILING_DATA_H_(从其他算子拷贝未修改)改为 _ADD_EXAMPLE_TILING_DATA_H_ 2. **add_example_aicpu/op_graph/add_example_proto.h**:include guard 从 OPS_OP_PROTO_INC_AddEXAMPLE_H_ 改为 OPS_OP_PROTO_INC_AddEXAMPLEAICPU_H_,避免与 add_example 版本两个不同算子使用相同 include guard 导致冲突 ## 涉及文件 - examples/add_example/op_kernel/add_example_tiling_data.h - examples/add_example_aicpu/op_graph/add_example_proto.h Closes #1616 See merge request: cann/ops-math!3637 | 2 个月前 | |
【社区任务】AscendC实现Sign算子贡献 Co-authored-by: 韩涛鸿<3430426834@qq.com> # message auto-generated for no-merge-commit merge: !2702 merge commit2 into master 【社区任务】AscendC实现Sign算子贡献 Created-by: hth810 Commit-by: 韩涛鸿;hth810 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 实现了AscendC实现的Sign算子对A3硬件及int16数据类型的适配。 ## 关联的Issue 关联Issue:https://gitcode.com/cann/ops-math/issues/1525 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 采用aclnn调用测试 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2702 | 2 个月前 | |
feat: 迁移 Conj 与 ConjugateTranspose AICPU 算子(含 infershape rt1→rt2) 从 canndev 迁移两个 AICPU 算子到 ops-math: - Conj → math/conj/ - ConjugateTranspose → conversion/conjugate_transpose/ 交付件(每算子): - op_graph: proto(REG_OP) + InferDataType(输出 dtype = 输入 dtype) - op_host: infershape(rt2;canndev 无 rt2,按 rt1 语义适配为 rt2) - op_kernel_aicpu: kernel(Compute) + opdef 元数据 - examples: 图模式 GE example - tests/ut: infershape UT + kernel UT - README infershape 说明: - Conj 为 element-wise,复用 Ops::Base::InferShape4Elewise。 - ConjugateTranspose 按 perm 常量重排 + InputsDataDependency({perm}); perm 校验为非负 [0, rank-1],与本算子 kernel、canndev rt1、TF 语义一致。 docs/zh/op_list.md 补充两算子条目。 代码经 codecheck 清理并通过 pre-commit(clang-format) 统一格式。 验证(Ascend 910B 真机):op_host UT 8/8、AICPU kernel UT 11/11、 打包/安装成功,两个 graph example 结果正确且走 AICPU custom scheduler。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> | 1 个月前 | |
新增stateless_truncated_normal_v2算子对标TF Co-authored-by: gh_M<meiguohan@huawei.com> # message auto-generated for no-merge-commit merge: !3410 merge NewStatelessTruncatedNormalV2 into master 新增stateless_truncated_normal_v2算子对标TF Created-by: gh_M Commit-by: gh_M Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增StatelessTruncatedNormalV2算子 生成服从截断正态分布 N(0,1) 的随机数,截断范围 (-2, 2)。无状态特性:相同 key + counter 输入保证相同输出。 具体实现SIMT模板。 包含算子原型、文档、kernel等 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2080 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 泛化用例验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3410 | 2 个月前 | |
新增stateless_truncated_normal_v2算子对标TF Co-authored-by: gh_M<meiguohan@huawei.com> # message auto-generated for no-merge-commit merge: !3410 merge NewStatelessTruncatedNormalV2 into master 新增stateless_truncated_normal_v2算子对标TF Created-by: gh_M Commit-by: gh_M Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增StatelessTruncatedNormalV2算子 生成服从截断正态分布 N(0,1) 的随机数,截断范围 (-2, 2)。无状态特性:相同 key + counter 输入保证相同输出。 具体实现SIMT模板。 包含算子原型、文档、kernel等 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2080 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 泛化用例验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3410 | 2 个月前 | |
设置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 | 2 个月前 | |
UT工程添加ARCH的设置替换SOC设置 Co-authored-by: zhu-lei0614<zhulei113@huawei.com> # message auto-generated for no-merge-commit merge: !3499 merge master into master UT工程添加ARCH的设置替换SOC设置 Created-by: huang-qiang Commit-by: zhu-lei0614 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3499 | 2 个月前 | |
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 个月前 | |
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 个月前 | |
批量修改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 个月前 | |
noaicpu option is supported Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !3292 merge 612aicpu into master noaicpu option is supported Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 问题背景:mc62 场景是不需要用到毕昇编译器的,因此构建时并没有安装毕昇编译器的任何东西,但aicpu因为涉及device侧运行,需要用到毕昇的交叉工具链,所以会报错工具链找不到。 解决方案:因为mc62 不需要执行aicpu算子,且不支持跑aicpu算子,因此利用--noaicpu参数选项,在构建aicpu算子的时候进行kernel隔离。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1959 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3292 | 2 个月前 | |
冗余空格修复第4批 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3321 merge master into master 冗余空格修复第4批 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!3321 | 2 个月前 | |
init | 11 个月前 | |
规范化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 个月前 | |
批量修改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 个月前 | |
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 | 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: 构建脚本增加 --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 个月前 | |
新增stateless_truncated_normal_v2算子对标TF Co-authored-by: gh_M<meiguohan@huawei.com> # message auto-generated for no-merge-commit merge: !3410 merge NewStatelessTruncatedNormalV2 into master 新增stateless_truncated_normal_v2算子对标TF Created-by: gh_M Commit-by: gh_M Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增StatelessTruncatedNormalV2算子 生成服从截断正态分布 N(0,1) 的随机数,截断范围 (-2, 2)。无状态特性:相同 key + counter 输入保证相同输出。 具体实现SIMT模板。 包含算子原型、文档、kernel等 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2080 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 泛化用例验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3410 | 2 个月前 | |
fix: install_deps.sh GCC安装增加版本自动检测与回退机制,适配Debian 13等新版本系统 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2987 merge master into master fix: install_deps.sh GCC安装增加版本自动检测与回退机制,适配Debian 13等新版本系统 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> install_deps.sh 中 install_gcc() 的 Debian 分支原先硬编码安装 gcc-9/g++-9,在 Debian 13 等新版本系统上 gcc-9 包已不可用,导致依赖安装失败。 本次改动将 Debian 分支的 GCC 安装逻辑改为自动版本检测:遍历 gcc-9 ~ gcc-14 候选版本,通过 apt-cache show 检查包是否存在于软件源中,自动选择第一个可用的版本进行安装;若所有候选版本均不可用,则降级安装系统默认的 gcc/g++ 包,确保在各种 Debian 版本上都能成功安装 GCC。 ### 改动方法 - 新增候选版本数组 (9 10 11 12 13 14),逐个通过 apt-cache show gcc-$ver 和 apt-cache show g++-$ver 检测包可用性 - 找到可用版本后安装对应版本的 gcc 和 g++,并设置 update-alternatives - 所有候选版本均不可用时,回退到安装默认 gcc/g++ 包 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> - #1686 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 在 Debian 13 环境下验证安装脚本能正确检测并安装可用的 GCC 版本 - 在 Debian 11/12 环境下验证原有行为不受影响 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2987 | 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 个月前 | |
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/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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。