本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| Files | Last commit | Last update |
|---|---|---|
ut上线asan Co-authored-by: cui_jiahao<cuijiahao5@h-partners.com> # message auto-generated for no-merge-commit merge: !7081 merge master into master ut上线asan Created-by: cui_jiahao Commit-by: cui_jiahao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7081 | 4 days ago | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 4 days ago | |
fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !6731 merge refactor/fusion-pass-stub-static into master fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 修复 !5140 桩机制的两处遗留问题,并补登记一项搁置的桩: 1. **registrar 堆分配未释放**: STUB_REG_PASS 的 registrar 改为函数内静态对象——ge_compiler 版本满足时构造并登记一次,不满足时不构造;消除 new 出的对象永不释放(ASan dlclose 场景 11 条分配 → 0)。 2. **惰化路径零日志**:版本门控不满足时补 WARN,进程内仅告警一次,区分弱符号未解析与 ge_compiler 版本低于 9.0.0 两种原因;登记行为与不加日志时完全一致。 3. **补登记 Globalavgpoolpass**(STUB_REG_PASS("Globalavgpoolpass", fe::BUILT_IN_GRAPH_PASS, 0x01),FORBIDDEN_CLOSE):!5140 时 math 类名为 GlobalavgpoolPass,大小写与 canndev 旧名(小写 p)不一致而搁置;!5385(10-30)类名对齐为 Globalavgpoolpass 后,桩名 / 类名(REG_FUSION_PASS(Globalavgpoolpass))/ 配置槽位(fusion_config.json、support_fusion_pass.json 3510/5102)三面一致,且 Stage=kCompatibleInherited、在 OPP 3510(ascend950) 白名单内,满足登记条件,补上 !5140 遗留。 4. 全部改动通过 clang-format v18.1.8(pre-commit 门禁)规范。 ## 关联的Issue - 关联 Issue #4352:https://gitcode.com/cann/ops-math/issues/4352(registrar 泄漏与门控静默缺陷) ## 测试 - **差分验证**(新旧同条件编译,五场景:无ACL / 真实ACL / 旧版本8.0.0 / dlclose前后 / -O2):注册输出逐名字一致;符号面未定义引用零删除、强符号导出面一致。 - **ASan/LSan**:泄漏 old=11 条分配 → new=0(修复生效);常驻场景两版均无泄漏报告。 - **950 真机**(run 包解包产物):桩编入(nm 两查通过)、fe 表登记 11/11、桥接闭环 11/11、PR 静态指纹=2(registrar 机制验证,时点为 11 桩清单;新增登记复用同一机制与门控)。 - **新增登记静态核验**:名字/类型/attr 与 canndev 原注册 REG_PASS("Globalavgpoolpass", BUILT_IN_GRAPH_PASS, Globalavgpoolpass, FORBIDDEN_CLOSE) 逐项一致;类名大小写经 !5385 对齐 canndev 旧名;OPP 白名单 3510 含该 pass;Stage=kCompatibleInherited(ge_compiler≥9.0.0),不在 kAfterInferShape 例外清单(对比 Castlike/Histogram)。 - **门禁**:pre-commit 全钩子通过(clang-format / codespell / OAT 合规);--opgraph --soc=ascend950 构建通过;rebase 至最新 master 后 CI 重跑(见下方流水线)。 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6731 | 5 days ago | |
fix: 修正参数校验失败时错误码误用,统一为 ACLNN_ERR_PARAM_INVALID Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !7072 merge error_code into master fix: 修正参数校验失败时错误码误用,统一为 ACLNN_ERR_PARAM_INVALID Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 修正多个 aclnn 算子在参数取值校验失败时日志错误码误用的问题:这些场景均为参数取值非法(如 dim 越界、splitSections 与维度大小不匹配、输入 shape 与广播 shape 不匹配、starts/ends 与 axes 长度不一致等),实际返回 ACLNN_ERR_PARAM_INVALID,但日志却记为 ACLNN_ERR_PARAM_NULLPTR,错误码语义不一致,误导问题定位。 涉及算子:aclnnSlice、aclnnSplitTensor(含 experimental)、aclnnSliceV2、aclnnFloorDivide(含 experimental)、aclnnAdd、aclnnEqTensor。 ### 改动原因 参数非法应使用 ACLNN_ERR_PARAM_INVALID;原代码误用空指针错误码 ACLNN_ERR_PARAM_NULLPTR。 ### 改动方法 将上述算子的 CheckShape / CheckArray / CheckInplace 参数校验分支中 OP_LOGE 的错误码由 ACLNN_ERR_PARAM_NULLPTR 替换为 ACLNN_ERR_PARAM_INVALID,错误信息文本与 return 值不变。 ## 关联的Issue - #4439 ## 测试 - 仅错误码修正,无算子行为变更。 ## 文档更新 - 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7072 | 3 days ago | |
docs: 移除新增算子混合容差精度标准 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !7060 merge revert-mr-6433-1793693650746-auto into master docs: 移除新增算子混合容差精度标准 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 回退原《算子混合容差精度标准》,保持通过链接到opbase。 ## 关联的Issue Issue [#3630](https://gitcode.com/cann/ops-math/issues/3630) ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7060 | 4 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7085 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第一批,共23个被其他译稿引用的文件):根README_en.md、CONTRIBUTING_en.md、SECURITY_en.md,以及circular_pad_grad/identity/pad系列/reflection_pad3d_grad、examples四个示例、ge控制流算子(merge/switch/ref系列/temporary_variable)、segsum、aclStft、aclRfft1D、hans_encode/tests等译稿。 本批为后续批量英文文档提交做前置:本批文件合入master后,其余译稿中的仓内链接(均指向master已有文件或本批文件)即可生效,避免链接失效拦截。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(第一批内全部相对链接仅指向master已有文件或本批新增文件),并逐篇完成翻译规范自查与语义审查。 ## 文档更新 新增23个英文译稿文件(*_en.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7085 | 4 days ago | |
fix: 修正参数校验失败时错误码误用,统一为 ACLNN_ERR_PARAM_INVALID Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !7072 merge error_code into master fix: 修正参数校验失败时错误码误用,统一为 ACLNN_ERR_PARAM_INVALID Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 修正多个 aclnn 算子在参数取值校验失败时日志错误码误用的问题:这些场景均为参数取值非法(如 dim 越界、splitSections 与维度大小不匹配、输入 shape 与广播 shape 不匹配、starts/ends 与 axes 长度不一致等),实际返回 ACLNN_ERR_PARAM_INVALID,但日志却记为 ACLNN_ERR_PARAM_NULLPTR,错误码语义不一致,误导问题定位。 涉及算子:aclnnSlice、aclnnSplitTensor(含 experimental)、aclnnSliceV2、aclnnFloorDivide(含 experimental)、aclnnAdd、aclnnEqTensor。 ### 改动原因 参数非法应使用 ACLNN_ERR_PARAM_INVALID;原代码误用空指针错误码 ACLNN_ERR_PARAM_NULLPTR。 ### 改动方法 将上述算子的 CheckShape / CheckArray / CheckInplace 参数校验分支中 OP_LOGE 的错误码由 ACLNN_ERR_PARAM_NULLPTR 替换为 ACLNN_ERR_PARAM_INVALID,错误信息文本与 return 值不变。 ## 关联的Issue - #4439 ## 测试 - 仅错误码修正,无算子行为变更。 ## 文档更新 - 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7072 | 3 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7085 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第一批,共23个被其他译稿引用的文件):根README_en.md、CONTRIBUTING_en.md、SECURITY_en.md,以及circular_pad_grad/identity/pad系列/reflection_pad3d_grad、examples四个示例、ge控制流算子(merge/switch/ref系列/temporary_variable)、segsum、aclStft、aclRfft1D、hans_encode/tests等译稿。 本批为后续批量英文文档提交做前置:本批文件合入master后,其余译稿中的仓内链接(均指向master已有文件或本批文件)即可生效,避免链接失效拦截。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(第一批内全部相对链接仅指向master已有文件或本批新增文件),并逐篇完成翻译规范自查与语义审查。 ## 文档更新 新增23个英文译稿文件(*_en.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7085 | 4 days ago | |
fix: 修正参数校验失败时错误码误用,统一为 ACLNN_ERR_PARAM_INVALID Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !7072 merge error_code into master fix: 修正参数校验失败时错误码误用,统一为 ACLNN_ERR_PARAM_INVALID Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 修正多个 aclnn 算子在参数取值校验失败时日志错误码误用的问题:这些场景均为参数取值非法(如 dim 越界、splitSections 与维度大小不匹配、输入 shape 与广播 shape 不匹配、starts/ends 与 axes 长度不一致等),实际返回 ACLNN_ERR_PARAM_INVALID,但日志却记为 ACLNN_ERR_PARAM_NULLPTR,错误码语义不一致,误导问题定位。 涉及算子:aclnnSlice、aclnnSplitTensor(含 experimental)、aclnnSliceV2、aclnnFloorDivide(含 experimental)、aclnnAdd、aclnnEqTensor。 ### 改动原因 参数非法应使用 ACLNN_ERR_PARAM_INVALID;原代码误用空指针错误码 ACLNN_ERR_PARAM_NULLPTR。 ### 改动方法 将上述算子的 CheckShape / CheckArray / CheckInplace 参数校验分支中 OP_LOGE 的错误码由 ACLNN_ERR_PARAM_NULLPTR 替换为 ACLNN_ERR_PARAM_INVALID,错误信息文本与 return 值不变。 ## 关联的Issue - #4439 ## 测试 - 仅错误码修正,无算子行为变更。 ## 文档更新 - 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7072 | 3 days ago | |
fix(dsa_gen_bit_mask): 修复 aclnnDropoutGenMaskV2 样例回拷长度越界 Co-authored-by: rsj007<renshuojian@huawei.com> # message auto-generated for no-merge-commit merge: !7068 merge master into master fix(dsa_gen_bit_mask): 修复 aclnnDropoutGenMaskV2 样例回拷长度越界 Created-by: rsj007 Commit-by: rsj007 Merged-by: cann-robot Description: ## 描述 修复 test_dropout_gen_mask_v2.cpp 样例:输出回拷 buffer 由 float 改为 uint8_t(避免 16 字节 device 内存被按 64 字节越界读取导致 507899),并删除未参与调用的 self 相关冗余代码。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4440 ## 测试 执行样例成功。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7068 | 4 days ago | |
strided_slice_assign_v2算子代码优化及ascend350适配 Co-authored-by: liaohuming<liaohuming@huawei.com> # message auto-generated for no-merge-commit merge: !6967 merge master into master strided_slice_assign_v2算子代码优化及ascend350适配 Created-by: liaohuming Commit-by: liaohuming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> strided_slice_assign_v2算子进行代码优化及ascend350适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4452 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 1.白盒,泛化,性能,门槛用例均验证通过 2.二级冒烟通过 3.aclnn测试:  4.geir测试:  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6967 | 4 days ago | |
设置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 | 5 months ago | |
fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !7056 merge master into master fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 ASAN 流水线生成 op_kernel tiling 头文件时的运行库加载顺序错误。ASAN 模式下,在启动 Python 前预加载当前编译器对应的 libasan.so,并仅对头文件生成进程关闭泄漏检测,避免 Python/TBE 退出时的泄漏报告阻断构建。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4373 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ASAN 模式下,流水线日志中失败的 13 个 tiling 头文件生成目标均构建成功。非 ASAN 模式 CMake 配置、脚本语法检查、git diff --check 和 pre-commit 检查均通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7056 | 4 days ago | |
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 | 4 months ago | |
chore: 补充.gitattributes并将存量png统一迁移至LFS Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !5569 merge add-gitattributes into master chore: 补充.gitattributes并将存量png统一迁移至LFS Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 补充 PR !5397 遗漏的 .gitattributes,并将存量 png 统一迁移至 LFS(单提交、不重写历史)。 ### 背景 PR !5397 以 LFS pointer 形式提交了 docs/zh/figures/CastlikeFusionPass.png,但仓库缺少 .gitattributes 中 filter=lfs 规则声明,导致 git check-attr filter 为 unspecified,检出时该文件无法被 smudge 为真实图片。 ### 变更内容(单提交 8fee7b7ea) - 新增 .gitattributes:*.png filter=lfs diff=lfs merge=lfs -text(对齐 ops-nn / ops-transformer 惯例) - 将存量 37 个 png 二进制文件转换为 LFS pointer 存储,连同已有 pointer 共 38 个 png 统一走 LFS,消除混合存储导致的 git status 假 modified、checkout 告警及后续误提交风险 ## 关联的Issue #3057 ## 测试 - [x] git check-attr filter 对全部 png 返回 lfs - [x] git lfs ls-files 共 38 个文件,工作区可正常检出为真实 PNG - [x] git status clean,无假 modified 文件 - [x] pre-commit / OAT 合规检查通过 - [x] PR 仅含 1 个提交,无历史重写 ## 类型标签 - [x] 其他(工程配置修复) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5569 | 1 month ago | |
迁移开源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 | 3 months ago | |
feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !6388 merge 1010 into master feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 bincount、adjacent_difference 两算子新增 ascend960dt/ascend960pr 平台注册级支持(v121 适配)。 ### 改动原因 Ascend960 系列平台上线,算子需同步支持 ascend960dt/ascend960pr 计算单元;适配增量同步自内部仓 cann_out 分支,在 OSS master 基线上叠加。 ### 改动方法(注册级适配,kernel/tiling/aclnn 零改动) 1. **def.cpp 注册**(2 文件):bincount_def.cpp、adjacent_difference_def.cpp 在既有 AddConfig("ascend950"/"ascend350") 后追加 AddConfig("ascend960dt", aicoreConfig) 与 AddConfig("ascend960pr", aicoreConfig),复用同一 aicoreConfig,保留 ascend350 注册不删 2. **config 配置**(8 个新增文件):新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/(2 算子 × 2 芯片 × binary.json + simplified_key.ini),内容与既有 ascend950 配置逐字节一致 3. **CMakeLists**(2 文件):SUPPORT_COMPUTE_UNIT 追加 "ascend960dt" "ascend960pr",SUPPORT_TILING_DIR 等量追加 "arch35"(tiling 复用 arch35) 4. **ascendc_config.json**:Bincount、AdjacentDifference 条目 compute_units 追加 "ascend960dt",compile_options 镜像 ascend950(-mllvm -cce-aicore-dcci-before-kernel-end=false) 5. **.pre-commit-config.yaml**:codespell 忽略列表追加 build-in(config 镜像中 ascend950 既有注释拼写,内容须与 950 逐字节一致不可修改) ## 关联的Issue - #3598 ## 测试 1. **ascend950 编译出包**:bash build.sh --pkg --soc=ascend950 --ops=bincount,adjacent_difference -j8 通过;包内 950 内核齐全(23 个 .o),aic-ascend960dt-ops-info.json 含 Bincount、AdjacentDifference 注册(960 注册生效核验) 2. **950 kernel 零影响硬证据**:适配前后两次编译,23 个 ascend950 kernel .o SHA256 逐字节一致(bit 级不变) 3. **ttk 精度回归 386/386 全 PASS**(Ascend950PR_9579,release 模式,seed=123): - bincount(kernel 级)192/192、adjacent_difference(kernel 级)81/81、aclnnBincount(API 级)113/113 - 正控 PASS / 负控 FAIL,判定链路自证有效 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6388 | 23 days ago | |
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 | 3 months ago | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 4 days ago | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 month ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7085 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第一批,共23个被其他译稿引用的文件):根README_en.md、CONTRIBUTING_en.md、SECURITY_en.md,以及circular_pad_grad/identity/pad系列/reflection_pad3d_grad、examples四个示例、ge控制流算子(merge/switch/ref系列/temporary_variable)、segsum、aclStft、aclRfft1D、hans_encode/tests等译稿。 本批为后续批量英文文档提交做前置:本批文件合入master后,其余译稿中的仓内链接(均指向master已有文件或本批文件)即可生效,避免链接失效拦截。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(第一批内全部相对链接仅指向master已有文件或本批新增文件),并逐篇完成翻译规范自查与语义审查。 ## 文档更新 新增23个英文译稿文件(*_en.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7085 | 4 days ago | |
init | 1 year ago | |
docs: 新增CastlikeFusionPass融合pass文档 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !5397 merge castlike-fusion-pass-doc into master docs: 新增CastlikeFusionPass融合pass文档 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 新增 CastLike 算子的融合 pass 说明文档,包含融合模式、使用约束及支持的型号信息: - **CastlikeFusionPass**:将图中的 CastLike 算子替换为 Cast 算子,从 CastLike 的类型参考输入 y 中提取目标类型 dst_type,替换后 Cast 仅接收 x 输入并携带 dst_type 属性。支持 Ascend 950PR/Ascend 950DT。 同时新增融合模式示意图(LFS)。 ## 关联的Issue #3057 ## 测试 纯文档更新,无需测试。 ## 文档更新 - 新增 math/cast/docs/CastlikeFusionPass.md - 新增 docs/zh/figures/CastlikeFusionPass.png ## 类型标签 - [x] 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5397 | 1 month ago | |
docs(readme): README最新动态中Ascend 950系列表述补充Huawei品牌前缀 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !6662 merge master into master docs(readme): README最新动态中Ascend 950系列表述补充Huawei品牌前缀 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 更新 README.md「🔥Latest News」2026/07 条目的品牌表述:将"新增支持Ascend 950系列"修改为"新增支持**Huawei** Ascend 950系列",为 Ascend 950 系列补充 Huawei 品牌前缀。 ### 改动原因 规范品牌表述,Ascend 950 系列在对外文档中需携带 Huawei 品牌前缀。 ### 改动方法 仅修改 README.md 中该条目的一处文字,链接指向(Ascend950重点特性与本仓算子样例介绍)、算子及特性清单等内容均保持不变。 ## 关联的Issue - #3872 ## 测试 文档文案改动,不涉及代码逻辑。已核对:全 PR 仅此一处文字变更,Markdown 链接格式及指向未受影响。 ## 文档更新 - README.md:最新动态 2026/07 条目补充 Huawei 品牌表述 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6662 | 14 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7085 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第一批,共23个被其他译稿引用的文件):根README_en.md、CONTRIBUTING_en.md、SECURITY_en.md,以及circular_pad_grad/identity/pad系列/reflection_pad3d_grad、examples四个示例、ge控制流算子(merge/switch/ref系列/temporary_variable)、segsum、aclStft、aclRfft1D、hans_encode/tests等译稿。 本批为后续批量英文文档提交做前置:本批文件合入master后,其余译稿中的仓内链接(均指向master已有文件或本批文件)即可生效,避免链接失效拦截。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(第一批内全部相对链接仅指向master已有文件或本批新增文件),并逐篇完成翻译规范自查与语义审查。 ## 文档更新 新增23个英文译稿文件(*_en.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7085 | 4 days ago | |
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 | 6 months ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7085 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第一批,共23个被其他译稿引用的文件):根README_en.md、CONTRIBUTING_en.md、SECURITY_en.md,以及circular_pad_grad/identity/pad系列/reflection_pad3d_grad、examples四个示例、ge控制流算子(merge/switch/ref系列/temporary_variable)、segsum、aclStft、aclRfft1D、hans_encode/tests等译稿。 本批为后续批量英文文档提交做前置:本批文件合入master后,其余译稿中的仓内链接(均指向master已有文件或本批文件)即可生效,避免链接失效拦截。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(第一批内全部相对链接仅指向master已有文件或本批新增文件),并逐篇完成翻译规范自查与语义审查。 ## 文档更新 新增23个英文译稿文件(*_en.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7085 | 4 days ago | |
【描 述】 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 | 8 months ago | |
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 | 6 months ago | |
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 | 3 months ago | |
fix(batch_to_space,diag_flat,cosh): 按人工检视意见修复校验缺失、空输入安全、溢出与测试文档资产 Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !6566 merge longtail into master fix(batch_to_space,diag_flat,cosh): 按人工检视意见修复校验缺失、空输入安全、溢出与测试文档资产 Created-by: yefeicoding Commit-by: yefeicoding Merged-by: cann-robot Description: ## 描述 按人工检视意见对 batch_to_space、diag_flat、cosh 三个算子整改,共 61 个文件(+964/-825),5 个提交。 **batch_to_space** - op_host: batch_to_space_def.cpp 增加 bfloat16 支持对齐 ascend910b 基线;InferShape 补充 x 4D、crops 元素数/非负、N 可整除 block_size²、H_out/W_out>0 校验;tiling 补充 crops 元素数校验 - 资产与文档:golden 增加 __spec__ 注册;proto.h 注释改为 4D NHWC 并补 BasicType 清单;README 补 BF16 并修正属性角色;example 检查 AddGraph 返回值、释放 session 与输入缓冲 **diag_flat** - 空输入安全:arch35 SIMT 内核以 numInput 为一致分支守卫输入读取,避免空输入越界读 xGm[0];arch22 DiagFlatNDTo2DWithFew 空输入早退避免 iter=-1 负索引;GmSetZeroPad/GmSetZero 空输出提前返回避免整除零 - 校验与返回码:aclnn CheckParams 增加 INT64_MIN 与输出尺寸溢出校验(161002);空指针返回码由 ACLNN_ERR_INNER_NULLPTR 改为 ACLNN_ERR_PARAM_NULLPTR(161001);infershape/tiling/op_api 采用溢出安全计算 - 资产与文档:golden __spec__ 注册并补 @staticmethod;修正 4 条用例输出形状,atk 补负 diagonal 与 2-8 维输入;单测夹具改为真实单输入 x + 属性 diagonal;README/aclnnDiagFlat.md 修正 dtype 集合、空 Tensor 语义、输出形状公式与错误码;classify_rule.yaml 修正 diag_flat 交付路径 **cosh** - 样例与资产:test_aclnn_cosh.cpp FP32 阈值对齐 spec.yaml(rtol=atol=1e-5)、workspace 交由调用方持有并在流同步后释放;test_geir_cosh.cpp 输入缓冲改用 Tensor SetData(deleter) 释放、失败路径补 GEFinalize;golden __spec__ 注册(与已合入 #6652 版本一致) - 文档:README 调用说明补“样例代码”列并规范为 aclnn API/GE图模式/PyTorch API、self/out 补整数与 BOOL 类型;aclnnCosh&aclnnInplaceCosh.md 修正数据类型基准、BFLOAT16 归为 950/A3/A2 额外支持并补空 Tensor 说明;cosh_proto.h 恢复 REG_OP 上方 Doxygen 说明 ## 关联的Issue #3869 ## 测试 - 3 个算子 tests/assets/golden.py(cosh/diag_flat/batch_to_space)通过 python py_compile 语法检查 - diag_flat 单测夹具改造为真实单输入 x + 属性 diagonal;atk 用例补齐负 diagonal 与 2-8 维输入 - 本分支已 rebase 至最新 master(e4fbff83c),冲突解决后 cosh golden.py 与已合入 #6652 版本对齐 ## 文档更新 - README:batch_to_space(BF16/属性角色)、diag_flat(dtype/空 Tensor)、cosh(样例代码列/类型) - docs:aclnnDiagFlat.md(dtype/输出形状/错误码)、aclnnCosh&aclnnInplaceCosh.md(类型基准/BF16 归属/空 Tensor) - 其他:proto.h 注释、classify_rule.yaml 交付路径 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6566 | 11 days ago | |
fix: preserve failed command status in dependency installer Co-authored-by: gaopengcheng<gaopengcheng13@huawei.com> # message auto-generated for no-merge-commit merge: !7046 merge fix/3660-install-deps-exit-status into master fix: preserve failed command status in dependency installer Created-by: guduid Commit-by: gaopengcheng Merged-by: cann-robot Description: ## 描述 install_deps.sh 的 run_command 使用 if ! output=$("$@" 2>&1),在失败分支读取 $? 时拿到的是 ! 取反后的状态 0。因此安装命令失败时,诊断日志显示 Exit code: 0,安装脚本也以成功状态退出,调用方无法识别依赖安装失败。 改为普通 if ...; then ... else ... fi:成功时返回 0;失败时在 else 入口立即保存原始退出码,保留原有命令及合并输出诊断,并以原始非零状态终止脚本。set -euo pipefail 和参数逐项传递保持不变。 仅修改 install_deps.sh 中的 run_command。已有 !3865 修改的是管道/source 调用方式,没有覆盖本次退出码捕获问题。 ## 关联的Issue Fixes #3660 https://gitcode.com/cann/ops-math/issues/3660 ## 测试 基线:master,8c9b6bd5a5efedc02d6b9a9e57c80757d76f28a4。 独立 clone / Python venv,在真实 Bash 的 set -euo pipefail 环境中执行从当前源文件原样提取的函数,不执行安装脚本的 main。 - 修复前:6 项检查中 **4 failed / 2 passed**,退出码 1、17、255、命令不存在时的 127 均被错误传播为 0。 - 修复后:**6 passed**;检查上述四种失败状态、stdout/stderr 诊断保留、失败后不执行后续语句,以及成功命令继续执行、含空格和通配符参数保持原样。 - bash -n install_deps.sh、git diff --check 通过。 - 仓库原配置 pre-commit run --files install_deps.sh 的全部适用检查通过,包含 codespell 和 OAT(实际扫描 1 个文件)。 在仓库根目录可使用以下无副作用命令复查退出码传播: bash python3 - <<'PY' from pathlib import Path import re import subprocess source = Path('install_deps.sh').read_text() function = re.search(r'^run_command\(\) \{\n.*?^\}', source, re.M | re.S).group(0) script = 'set -euo pipefail\n' + function + '\nrun_command bash -c "$1"\n' for code in (0, 1, 17, 127, 255): result = subprocess.run( ['bash', '-c', script, 'check', f'echo child-output; exit {code}'], capture_output=True, text=True, check=False) assert result.returncode == code, (code, result.returncode, result.stdout) print('exit status checks passed') PY 未调用 apt/dnf/yum/brew 或修改系统依赖;未声称完成全平台安装验证、算子编译或 NPU 测试。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7046 | 3 days ago | |
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 | 6 months ago | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 4 days ago |
🔥Latest News
- [2026/07] Added support for operators and new features of the Huawei Ascend 950 series, covering operators such as CumulativeLogSumExp, MatrixSetDiagV2, DropoutV3Grad, SignBitsUnpack, and ProdVirialSeA; introduced new features such as FLOAT8/FLOAT4 low-precision type support, Philox PRNG random number generation, and Reg API migration.
- [2026/01] Added QuickStart, which guides beginners to get started with operator project deployment from scratch (Docker environment supported) and with the operator development and contribution workflows.
- [2025/12] Open-source operators support the Ascend 950PR&950DT products, and you can develop and debug them with the CANN Simulator simulation tool. A <<<>>> kernel heterogeneous invocation example is added to the add operator, making it convenient for you to customize and use it. Newly supported operators in multiple categories include concat, lerp, and drop_out_v3.
- [2025/11] Improved the README descriptions of multiple operators, and improved the operator development sample documents and examples.
- [2025/10] Added the experimental directory, improved the contribution guide, and enabled developers to debug and contribute custom operators.
- [2025/09] The ops-math project went online for the first time.
🚀Overview
ops-math is a basic operator library that provides numerical computation in the CANN (Compute Architecture for Neural Networks) operator library. It includes conversion-class, math-class, and random-class operators, covering scenarios such as tensor shape transformation, basic mathematical operations, and random number generation. The position of the sub-library in the architecture diagram is as follows.

📌Version Compatibility
The source code of this project is released together with CANN software versions. For the mapping between CANN software versions and the tags of this project, refer to the corresponding version notes in the release repository. Note that to ensure smooth custom development based on the source code, select a compatible CANN version and GitCode tag source code. Using the master branch may cause version mismatch risks.
🛠️Environment Preparation
Environment deployment is a prerequisite for experiencing the capabilities of this project. Install the NPU driver and CANN package first, and ensure the environment works properly.
⬇️Source Code Download
After the environment is ready, download the branch source code that matches the CANN version. The general command is as follows, where ${tag_version} is replaced with the branch tag name. The following uses the download of the 9.0.0 branch source code as an example:
# General command: 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
Note: If the matching branch source code already exists in the environment, you can skip this step. For example, CANNLab provides the source code corresponding to the latest CANN version by default.
📖Learning Tutorials
- Quick start: Quickly experience the core basic capabilities of the project from scratch, covering source code compilation, operator invocation, development, debugging, and other operations.
- Advanced tutorials: If you need to deeply understand project compilation and deployment, operator invocation, development, debugging and tuning, and other capabilities, go to the documentation center for detailed guidance.
💬Related Information
PS: The features and documentation of this project are continuously updated and improved. Stay tuned for the latest version.
- Issue feedback: Submit issues through GitCode Issues.
- Community interaction: Join discussions through GitCode Discussions.
- Technical column: Read technical articles through GitCode Wiki.