本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| Files | Last commit | Last update |
|---|---|---|
ci(workflows): checkout add allow-unsafe-pr-checkout flag Co-authored-by: wangyunxiang<wangyunxiang6@h-partners.com> # message auto-generated for no-merge-commit merge: !6160 merge fix/checkout-unsafe-flag into master ci(workflows): checkout add allow-unsafe-pr-checkout flag Created-by: wangyunxiang1 Commit-by: wangyunxiang Merged-by: cann-robot Description: ## Problem The process_checkout steps lack allow-unsafe-pr-checkout: true, so PRs from forks fail to check out the merge commit. ## Fix Add the flag to 1 checkout with-blocks, aligned with metadef/oam-tools etc. See merge request: cann/ops-math!6160 | 1 month ago | |
迁移算子FileConstant、TemporaryVariable、DestroyTemporaryVariable、GuaranteeConst、PlaceHolder、PlaceholderWithDefault、ReadVariableOp、ConstPlaceHolder、VarHandleOp、VarIsInitializedOp、IsVariableInitialized Co-authored-by: gcw_2mqml1vq<guoguanghai@huawei.com> # message auto-generated for no-merge-commit merge: !5327 merge migrate_gelocal_0912 into master 迁移算子FileConstant、TemporaryVariable、DestroyTemporaryVariable、GuaranteeConst、PlaceHolder、PlaceholderWithDefault、ReadVariableOp、ConstPlaceHolder、VarHandleOp、VarIsInitializedOp、IsVariableInitialized Created-by: gcw_2mqml1vq Commit-by: gcw_2mqml1vq Merged-by: cann-robot Description: ## 描述 迁移gelocal算子FileConstant、TemporaryVariable、DestroyTemporaryVariable、GuaranteeConst、PlaceHolder、PlaceholderWithDefault、ReadVariableOp、ConstPlaceHolder、VarHandleOp、VarIsInitializedOp、IsVariableInitialized ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5327 | 1 month ago | |
fe: 融合 pass 打桩注册,编入 libopgraph_math.so Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !5140 merge task4-stubs into master fe: 融合 pass 打桩注册,编入 libopgraph_math.so Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 桩声明 GE fe 融合 pass 注册接口(GraphFusionPassType 枚举、PassAttr、FusionPassRegistry、FusionPassRegistrar、STUB_REG_PASS),新增 common/src/op_graph/fusion_pass_common.cpp 登记 9 个有 canndev 对应物的 pass 名字,编入 libopgraph_math.so;仅 ascend950 且 ge_compiler >= 9.0.0 时生效。 作用:删掉 canndev 后 fe 表为空,这 9 个 pass 的融合会全部丢失(fusable-only 算子会在引擎选型阶段报 "Cannot find engine")。桩用名字占住 fe 表,fe 调度器才能按名字桥接到 math 侧实现。 未登记的 3 个: - CastlikeFusionPass、HistogramFusionPass:math 实现 Stage 为 kAfterInferShape,不在 kCompatibleInherited 表里,登记后 fe 查不到实现会报 "pattern fusion is nullptr" - Globalavgpoolpass:本次不登记 补充说明:DropOutV3SplitFusionPass 已登记但当前不生效——不在 OPP 白名单 support_fusion_pass.json 的 3510(ascend950) 名单内,fe 会 force close 跳过;待 OPP 侧补名单后生效,故保留登记。 ## 关联的Issue 关联 Issue #3450:[Requirement|需求建议]: FE 融合 pass 打桩注册,编入 libopgraph_math.so https://gitcode.com/cann/ops-math/issues/3450 ## 测试 - 编译:ascend950 配置下 fusion_pass_common.cpp 编译通过,libopgraph_math.so 链接通过 - 符号:桩引用的 FusionPassRegistrar 未定义符号与 libregister.so 导出的逐字符一致(_GLIBCXX_USE_CXX11_ABI=0) - 加载:ldd 依赖全部可解析,dlopen libopgraph_math.so 成功,静态初始化未崩溃 - 冒烟:已验证通过 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5140 | 1 month ago | |
Revert "add ascend960pr support for pad" Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6170 merge dev_1008 into master Revert "add ascend960pr support for pad" Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 先回退pad系算子的960功能恢复,等依赖算子slice上库后再合入 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3452 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 特性回退 See merge request: cann/ops-math!6170 | 1 month ago | |
修复aclnnTransConvolutionWeight 和 aclnnCalculateConvolutionWeightSize文档芯片支持度不一致 Co-authored-by: candy_cloud_fly<tangyunfei4@h-partners.com> # message auto-generated for no-merge-commit merge: !6190 merge fix/master-convolution-weight-a2-a3 into master 修复aclnnTransConvolutionWeight 和 aclnnCalculateConvolutionWeightSize文档芯片支持度不一致 Created-by: candy_cloud_fly Commit-by: candy_cloud_fly Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复aclnnTransConvolutionWeight 和 aclnnCalculateConvolutionWeightSize文档芯片支持度不一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3465 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了op_api_list.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6190 | 1 month 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 | |
【社区任务】优化aclnnRemainderTensorTensor算子内存 Co-authored-by: RandolphJiang<xiyue_jiang@outlook.com> # message auto-generated for no-merge-commit merge: !5113 merge feat/aclnn-remainder-tensor-tensor-memory-optimization into master 【社区任务】优化aclnnRemainderTensorTensor算子内存 Created-by: RandolphJiang Commit-by: RandolphJiang Merged-by: cann-robot Description: ## 描述 【社区任务】优化aclnnRemainderTensorTensor算子内存 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2895 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5113 | 1 month ago | |
迁移算子FileConstant、TemporaryVariable、DestroyTemporaryVariable、GuaranteeConst、PlaceHolder、PlaceholderWithDefault、ReadVariableOp、ConstPlaceHolder、VarHandleOp、VarIsInitializedOp、IsVariableInitialized Co-authored-by: gcw_2mqml1vq<guoguanghai@huawei.com> # message auto-generated for no-merge-commit merge: !5327 merge migrate_gelocal_0912 into master 迁移算子FileConstant、TemporaryVariable、DestroyTemporaryVariable、GuaranteeConst、PlaceHolder、PlaceholderWithDefault、ReadVariableOp、ConstPlaceHolder、VarHandleOp、VarIsInitializedOp、IsVariableInitialized Created-by: gcw_2mqml1vq Commit-by: gcw_2mqml1vq Merged-by: cann-robot Description: ## 描述 迁移gelocal算子FileConstant、TemporaryVariable、DestroyTemporaryVariable、GuaranteeConst、PlaceHolder、PlaceholderWithDefault、ReadVariableOp、ConstPlaceHolder、VarHandleOp、VarIsInitializedOp、IsVariableInitialized ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5327 | 1 month ago | |
fix: add/sub/rsub的IsEqualToOne在alpha为NaN时误判为1(isnan守卫式,!6150备选方案) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6154 merge fix/add-sub-alpha-nan-isnan into master fix: add/sub/rsub的IsEqualToOne在alpha为NaN时误判为1(isnan守卫式,!6150备选方案) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: 修复 IsEqualToOne 的 RegBase 分支在 alpha 为 NaN 时误判为 1 的缺陷。缺陷 issue:#3460 ## 问题与根因 IsEqualToOne 的 RegBase 分支使用 !(x > 1 || x < 1) 判断 alpha 是否为 1。IEEE-754 下 NaN 与任何数比较均为 false,NaN > 1 与 NaN < 1 同时为 false,取反后整体为 **true** —— NaN alpha 被误判为 1,aclnnAdd / aclnnSub / aclnnRsub 跳过 alpha 乘法直接走快速路径,输出 self ± other 而非 NaN(竞品 PyTorch 为全 NaN)。 ## 修复(isnan 守卫式) 不替换既有判断式结构,在其前叠加显式 NaN 排除,取值缓存到局部变量避免重复调用访问器: cpp if (calcType == DataType::DT_DOUBLE) { double alphaVal = alpha->ToDouble(); return !std::isnan(alphaVal) && !(alphaVal > 1 || alphaVal < 1); } float alphaVal = alpha->ToFloat(); return !std::isnan(alphaVal) && !(alphaVal > 1 || alphaVal < 1); NaN 显式排除后按原判断式求值,不再误判为 1,NaN 按语义传播。 ## 修改范围 - math/add/op_api/aclnn_add.cpp、math/sub/op_api/aclnn_sub.cpp、math/sub/op_api/aclnn_rsub.cpp 各 IsEqualToOne 的 DT_DOUBLE 与默认分支 - **仅 RegBase 路径**;!IsRegBase() 早退分支(非 RegBase 平台行为)保持不变 ## 自测 - 谓词级对照:修复前后在 14 组 float 边界取值(1±1ulp、±inf、denormal、±0 等)上行为不变,仅 NaN 由 true(缺陷)变为 false - g++ -fsyntax-only(CANN 9.2.0 真实构建参数,含 -Werror):3 文件 0 error(同时验证 std::isnan 经既有传递包含可解析,与文件内既有 std::abs 用法同源) - clang-format --style=file --dry-run -Werror:3 文件 0 告警 See merge request: cann/ops-math!6154 | 1 month ago | |
random md文档修改 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6178 merge md_modify_m into master random md文档修改 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 random md文档修改 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3427 ## 测试 不涉及 ## 文档更新 更新了 random/sim_thread_exponential/README.md random/stateless_drop_out_gen_mask/README.md random/stateless_random_normal_v2/README.md random/stateless_random_normal_v3/README.md random/stateless_random_uniform_v2/README.md random/stateless_random_uniform_v3/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6178 | 1 month ago | |
Revert "add ascend960pr support for pad" Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6170 merge dev_1008 into master Revert "add ascend960pr support for pad" Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 先回退pad系算子的960功能恢复,等依赖算子slice上库后再合入 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3452 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 特性回退 See merge request: cann/ops-math!6170 | 1 month 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 | |
feat: 算子仓适配Ascend5162A芯片编译 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !5731 merge feat/ascend5162a-build-support into master feat: 算子仓适配Ascend5162A芯片编译 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 算子仓适配 Ascend5162A 芯片编译:在编译框架(CMakeLists、build 脚本、SOC 映射)与 UT 桩代码中注册 ascend5162a 计算单元,支持通过 --soc=ascend5162a 编译输出 5162A 算子包。 改动清单(9 个文件): | 文件 | 改动 | |---|---| | CMakeLists.txt | ASCEND_ALL_COMPUTE_UNIT 增加 ascend5162a | | scripts/build.conf.sh | SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend5162a | | scripts/build_options.sh | --soc usage 补充 ascend5162a | | scripts/kernel/binary_script/build_env.sh | SOC_MAP 增加 Ascend5162A | | scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | scripts/util/opdesc_parser.py | SOC_TO_SHORT_SOC_MAP 增加 ascend5162a | | tests/ut/common/tiling_case_executor.cpp | soc 映射表增加 ascend5162a | | tests/ut/op_api/stub/opdev/platform.cpp | ASCEND5162A ToString 映射 | | tests/ut/op_api/stub/opdev/platform.h | SocVersion 枚举增加 ASCEND5162A | ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3201 ## 测试 本地环境(CANN 9.2.0,aarch64)执行 build.sh --soc=ascend5162a,编译通过并成功生成算子包 cann-5162a-ops-math_9.2.0_linux-aarch64.run。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5731 | 1 month 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(cmake): prebed include/aicpu path in Findaicpu.cmake Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !5411 merge feat/prebed-include-aicpu-path into master feat(cmake): prebed include/aicpu path in Findaicpu.cmake Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 在 Findaicpu.cmake 中为已安装依赖包构建场景补充 include/aicpu 头文件搜索路径,预埋后续opbase中pkg_inc/aicpu头文件给include/aicpu/路径切换平稳过渡。 ### 变更 cmake if(BUILD_WITH_INSTALLED_DEPENDENCY_CANN_PKG) set(AICPU_INC_DIRS ... ${ASCEND_DIR}/${SYSTEM_PREFIX}/include/experiment/datagw/aicpu/common ${ASCEND_DIR}/${SYSTEM_PREFIX}/pkg_inc ${ASCEND_DIR}/${SYSTEM_PREFIX}/pkg_inc/aicpu ${ASCEND_DIR}/${SYSTEM_PREFIX}/include/aicpu ← 新增 ) ### 涉及文件 | 文件 | 变更 | 说明 | |------|------|------| | cmake/modules/Findaicpu.cmake | +1 | AICPU_INC_DIRS 追加 include/aicpu 路径 | ## 关联的Issue include path增加一个路径,逻辑简单,不用创建issue了。 ## 测试 相关用例测试通过。 ## 文档更新 NA ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-math!5411 | 2 months 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 | |
feat: 算子仓适配Ascend5162A芯片编译 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !5731 merge feat/ascend5162a-build-support into master feat: 算子仓适配Ascend5162A芯片编译 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 算子仓适配 Ascend5162A 芯片编译:在编译框架(CMakeLists、build 脚本、SOC 映射)与 UT 桩代码中注册 ascend5162a 计算单元,支持通过 --soc=ascend5162a 编译输出 5162A 算子包。 改动清单(9 个文件): | 文件 | 改动 | |---|---| | CMakeLists.txt | ASCEND_ALL_COMPUTE_UNIT 增加 ascend5162a | | scripts/build.conf.sh | SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend5162a | | scripts/build_options.sh | --soc usage 补充 ascend5162a | | scripts/kernel/binary_script/build_env.sh | SOC_MAP 增加 Ascend5162A | | scripts/util/const_var.py | SOC_MAP_EXT 增加 ascend5162a → Ascend5162A | | scripts/util/opdesc_parser.py | SOC_TO_SHORT_SOC_MAP 增加 ascend5162a | | tests/ut/common/tiling_case_executor.cpp | soc 映射表增加 ascend5162a | | tests/ut/op_api/stub/opdev/platform.cpp | ASCEND5162A ToString 映射 | | tests/ut/op_api/stub/opdev/platform.h | SocVersion 枚举增加 ASCEND5162A | ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3201 ## 测试 本地环境(CANN 9.2.0,aarch64)执行 build.sh --soc=ascend5162a,编译通过并成功生成算子包 cann-5162a-ops-math_9.2.0_linux-aarch64.run。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5731 | 1 month 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 | |
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 | 2 months 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 | |
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 | |
【描 述】 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 | |
refactor: 为公共op_api头文件增加math后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5839 merge refactor/math-prefix-common-headers into master refactor: 为公共op_api头文件增加math后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-math/common/inc/op_api 中的 level2_base.h、level2_base_caculation.h、op_api_def.h 名称缺少仓库标识。在软件包合并交付或公共 include 目录集成时,存在被其他仓库同名文件覆盖,或因 include 路径顺序产生误引用的风险。 本 MR 参考同目录已有的 op_resource_math.h 命名,为三个公共头文件增加 _math 后缀,并通过兼容转发头分阶段迁移现有引用。 ## 修改内容 - 新增 level2_base_math.h、level2_base_caculation_math.h、op_api_def_math.h,作为带仓库标识的正式实现; - 原 level2_base.h、level2_base_caculation.h、op_api_def.h 保留为轻量兼容转发头,避免未迁移代码立即失效; - 新头文件之间的内部依赖统一使用 _math 后缀路径; - 更新 classify_rule.yaml,让 level2_base_math.h 继承原组件及 UT 覆盖率分类; - 将 89 处旧头文件引用迁移到新名称: - level2_base.h:20 处; - level2_base_caculation.h:9 处; - op_api_def.h:60 处; - 当前 MR 共修改 81 个文件,新增 434 行、删除 384 行。 为减少无关格式变化和后续合并冲突,本次未迁移会触发额外 clang-format、尾部空白或 EOF 修复,或组合触发既有 UT 隔离问题的文件。这些文件将拆分到后续 MR 逐步处理。 ## 剩余迁移 当前仓内仍有 67 处旧引用,分布在 65 个唯一文件中,继续通过兼容转发头工作: - level2_base.h:24 个文件; - level2_base_caculation.h:2 个文件; - op_api_def.h:41 个文件。 待旧引用分批迁移完成后,再结合实际打包和安装规则移除兼容转发头。本 MR 不移除旧头文件,也不声明已完成最终软件包去重。 ## 关联的 Issue 关联并在合入后关闭 #3243: https://gitcode.com/cann/ops-math/issues/3243 ## 测试 已完成: - 对本轮新增的 69 个纯引用替换文件逐行检查,80 组增删均仅修改目标 include,无其他代码或格式变化; - 额外纳入 aclnn_log10.cpp 和 aclnn_logdet.cpp,每个文件最终均为 3 行新增、3 行删除,低于 10 行修改阈值;math/sin/op_api/aclnn_sin.cpp 因聚合 UT 存在平台状态泄漏暂缓迁移; - 在 CANN 9.0.0 容器执行完整 pre-commit,尾部空白、EOF、clang-format、codespell 和 OAT 等检查全部通过; - 在 CANN 9.0.0 容器执行 bash build.sh --opapi -j32,全量构建通过; - 成功生成 build/libopapi_math.so,SHA-256:abaa8f8408979d931a8dad09f8e06875722fc42bbdddc72aaf9f14944bc163ea; - classify_rule.yaml 可正常解析,三个旧文件继续作为兼容转发头使用。 ## 文档更新 不涉及用户文档变更。 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码重构 See merge request: cann/ops-math!5839 | 1 month ago | |
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 | 4 months 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 | |
chore(version): ops_math包版本由9.1.0升级至9.2.0 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !5298 merge master into master chore(version): ops_math包版本由9.1.0升级至9.2.0 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 ### 改动原因 仓库已进入 9.2.0 发布周期(远端已发布 v9.2.0-beta.2 标签),ops_math 包版本号需由 9.1.0 升级至 9.2.0,与发布节奏对齐。 ### 改动方法 version.cmake 中 set_cann_package(ops_math VERSION "9.1.0") 调整为 "9.2.0"。编译依赖与运行时依赖(runtime/opbase/metadef/ge-compiler/bisheng-compiler/asc-devkit/ge-executor 等 >=8.5)保持不变。 ## 关联的Issue #3003 ## 测试 版本号变更仅影响打包元信息,编译验证通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:版本升级 See merge request: cann/ops-math!5298 | 2 months ago |
🔥Latest News
- [2026/07] 新增支持Ascend 950系列算子及新特性,涵盖CumulativeLogSumExp、MatrixSetDiagV2、DropoutV3Grad、SignBitsUnpack、ProdVirialSeA等算子;引入FLOAT8/FLOAT4低精度类型支持、Philox PRNG随机数生成、Reg接口迁移等新特性。
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR&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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。