本项目是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 个月前 | |
fix transpose 021 profiling Co-authored-by: jzj007<jiangzhijie9@huawei.com> # message auto-generated for no-merge-commit merge: !3705 merge 0701_transpose into master fix transpose 021 profiling Created-by: jzj007 Commit-by: jzj007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2120](https://gitcode.com/cann/ops-math/issues/2120) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3705 | 1 个月前 | |
新增SparseReshape长尾算子 Co-authored-by: rsj007<renshuojian@huawei.com> # message auto-generated for no-merge-commit merge: !3582 merge master into master 新增SparseReshape长尾算子 Created-by: kevin_huang1234 Commit-by: rsj007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增SparseReshape长尾算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2111 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 1. 完成UT/ST 2. 完成TTK ST测试 3. 完成TF 通过测试 4. 完成OBP冒烟测试 5. 完成DAVID冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 1. op_list.md 2. 算子README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3582 | 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 个月前 | |
【社区任务】Add roll operator Co-authored-by: boxw987<boxw987@gmail.com> # message auto-generated for no-merge-commit merge: !3333 merge roll-submit-master into master 【社区任务】Add roll operator Created-by: boxw987 Commit-by: boxw987 Merged-by: cann-robot Description: ## 描述 本次提交补齐 Roll 算子的开源实现,面向 Atlas A2 训练系列产品提供 ACLNN 两阶段调用接口。 Roll 的目标是沿指定维度对输入张量执行循环位移;当 dims 为空时,语义等价于先对输入做逻辑展平,再执行一维 roll,最后恢复原始形状。 本次实现重点解决以下问题: 1. 正式支持范围内的语义对齐。 2. 单维、多维、最后一维、非最后一维等不同访存形态下的统一实现。 3. 在控制实现复杂度的前提下,保证正式支持范围内的性能收益。 当前版本支持范围如下: - 数据类型:uint8、int8、bfloat16、float16、float32、int32、uint32 - 数据格式:ND - 维度范围:0-D 到 8-D - 语义特性:负维度归一化、重复维度合并、dims 为空的 flatten roll 当前版本不支持: - bool - int64 - 非 ND 格式 实现上采用 Host 侧归一化与 Tiling、Kernel 侧多路径搬运的方案: mermaid flowchart TD A[ACLNN 接口] --> B[参数校验] B --> C[dims shifts 归一化] C --> D[重复维度合并] D --> E[生成 Tiling 信息] E --> F[Kernel 路径选择] F --> G[连续段 Copy] F --> H[按行 Roll] F --> I[按 Block Roll] F --> J[Segmented Fallback] 整体设计思路如下: 1. Host 侧负责参数校验、负维归一化、重复维度合并和切分信息生成。 2. dims 为空时退化为 flatten roll,避免继续走原始多维索引路径。 3. 单 active dim 与多 active dim 分开建模,分别提取更适合搬运的结构信息。 4. 最后一维滚动优先按行处理,非最后维滚动优先按 block 重排。 5. 保留 segmented fallback 作为通用正确性兜底路径。 Kernel 路径选择可概括为: mermaid flowchart TD A[Kernel Process] --> B{activeDimCount == 0?} B -->|Yes| C[Identity Copy] B -->|No| D{dimNum == 1?} D -->|Yes| E[Flatten Roll] D -->|No| F{single active dim?} F -->|Yes| G{activeDim == 0?} G -->|Yes| H[Leading Dim Roll] G -->|No| I{innerSize == 1 and last dim?} I -->|Yes| J[Last Dim Row Roll] I -->|No| K[Single Dim Block Roll] F -->|No| L{last active dim is final dim?} L -->|Yes| M[Multi-Dim Last-Dim Roll] L -->|No| N[Multi-Dim Non-Last Roll] N --> O[Segmented Fallback] 本次实现保留的优化主线不是单点 shape 特化,而是以下几类可复用策略: 1. 连续段优先 能转为连续段搬运的场景,优先使用连续 copy 或源端对齐 copy,减少逐元素处理。 2. 最后一维按行优化 围绕最后一维滚动构建按行搬运、按行拼接和行组处理路径,降低访存碎片。 3. 非最后维按 block 重排 对中间维或多维组合滚动,优先按 block 建模,减少重复索引计算。 4. 小宽度定向增强 对部分 BF16、小宽度最后维和部分 uint8 小块场景,调整切分与 patch 策略,但不引入写死单一 shape 的独立实现。 输入约束方面,当前版本要求: 1. 输入输出 dtype 一致。 2. 输入输出 shape 一致。 3. rank 不超过 8。 4. dims 为空时,shifts 长度必须为 1。 5. dims 非空时,shifts 与 dims 长度必须一致。 6. dims 的取值范围为 [-rank, rank)。 7. 0 维输入时,shifts 长度必须为 1,且 dims 为空。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/1971 ## 测试 本次改动包含以下验证范围: 1. ACLNN 接口参数校验用例 2. Host 侧 InferShape / Tiling 用例 3. Kernel 路径基础功能用例 4. dims 为空、负维度、重复维度合并等关键语义场景 5. 正式支持 dtype 范围内的基础调用样例 验收目标包括: 1. 正式支持范围内功能结果正确。 2. 单维、多维、负维和重复维度归并场景行为正确。 3. 正式支持范围内的性能目标优于参考 TBE。 ## 文档更新 本次同步补充了算子说明文档、接口文档以及需求与设计说明。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增 Roll 算子实现与配套文档 See merge request: cann/ops-math!3333 | 1 个月前 | |
修复format问题 | 1 个月前 | |
修复StatelessRandomNormalV2算子aclnn接口文档 Co-authored-by: gh_M<meiguohan@huawei.com> # message auto-generated for no-merge-commit merge: !3681 merge master into master 修复StatelessRandomNormalV2算子aclnn接口文档 Created-by: gh_M Commit-by: gh_M Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> stateless_random_normal_v2算子docs文档修改,对齐算子实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2109 解决了问题单:aclnnNormalTensorFloat文档和实际功能描述不一致 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了 random/stateless_random_normal_v2/docs/aclnnNormalFloatTensor.md random/stateless_random_normal_v2/docs/aclnnNormalTensorFloat.md random/stateless_random_normal_v2/docs/aclnnNormalTensorTensor.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3681 | 1 个月前 | |
feat: hans_encode/hans_decode算子950编译及独立编译 | 1 个月前 | |
设置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 | 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 个月前 | |
批量修改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 | 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: 构建脚本增加 --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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。