本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
action上线脚本适配 Co-authored-by: chenyajie<chenyajie6@huawei.com> # message auto-generated for no-merge-commit merge: !695 merge master into master action上线脚本适配 Created-by: yajie_caroline Commit-by: chenyajie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!695 | 30 天前 | |
refactor(aicpu_common): 按对外可见性拆分头文件源码目录 将 pkg_inc/op_common/aicpu_common/context 下 35 个头文件按"谁在用" 拆分到两处,使对外契约面与 opbase 内部实现在源码目录上物理隔离: - 17 个仅 opbase 使用的头 -> aicpu_common/context/{common,cpu_proto} (框架 cache/sharder/threadpool/async + cpu_proto 的 *_impl,与对应 .cc 同级) - 18 个对外公开的头 -> include/op_common/aicpu_common/context/ (15 个被 ops-cv/math/nn/transformer 直接 include,加 3 个传递依赖: cpu_kernel_register.h、device_cpu_kernel.h 经 node_def_builder.h; log_weak.h 经 log.h) 头文件内容零改动;装包目的地路径一律不变,package.cmake 只改 install 的源路径,下游四仓零感知。 配套构建改动: - aicpu_context_headers 的 include 目录 4 -> 8(.cc 里 include 均为裸文件名, 跨目录必须显式在 path 上) - package.cmake 中 pkg_inc/aicpu_common 装包拆为「公开侧整目录 install + 私有 17 头 install(FILES ... PERMISSIONS)」,合并回同一目的地 - include/op_common 整目录 install 新增 PATTERN "aicpu_common" EXCLUDE, 避免公开头被扫进 include/op_common 产生冗余副本 验证(远端 aarch64 + CANN 9.2.0): - 完整 .run 编包基线/改动后双向比对:211 个文件集合完全相同,208 个逐字节 一致,其余 3 个仅因构建时间戳而异;权限位 0 差异 - opbase aicpu host/device 两侧共 84 个源文件强制重编,零错误 - ops-math/ops-nn/ops-cv/ops-transformer 四仓编包全部通过 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfMxjhHAYKukSCh5pKfjeG | 27 天前 | |
refactor(aicpu_common): 按对外可见性拆分头文件源码目录 将 pkg_inc/op_common/aicpu_common/context 下 35 个头文件按"谁在用" 拆分到两处,使对外契约面与 opbase 内部实现在源码目录上物理隔离: - 17 个仅 opbase 使用的头 -> aicpu_common/context/{common,cpu_proto} (框架 cache/sharder/threadpool/async + cpu_proto 的 *_impl,与对应 .cc 同级) - 18 个对外公开的头 -> include/op_common/aicpu_common/context/ (15 个被 ops-cv/math/nn/transformer 直接 include,加 3 个传递依赖: cpu_kernel_register.h、device_cpu_kernel.h 经 node_def_builder.h; log_weak.h 经 log.h) 头文件内容零改动;装包目的地路径一律不变,package.cmake 只改 install 的源路径,下游四仓零感知。 配套构建改动: - aicpu_context_headers 的 include 目录 4 -> 8(.cc 里 include 均为裸文件名, 跨目录必须显式在 path 上) - package.cmake 中 pkg_inc/aicpu_common 装包拆为「公开侧整目录 install + 私有 17 头 install(FILES ... PERMISSIONS)」,合并回同一目的地 - include/op_common 整目录 install 新增 PATTERN "aicpu_common" EXCLUDE, 避免公开头被扫进 include/op_common 产生冗余副本 验证(远端 aarch64 + CANN 9.2.0): - 完整 .run 编包基线/改动后双向比对:211 个文件集合完全相同,208 个逐字节 一致,其余 3 个仅因构建时间戳而异;权限位 0 差异 - opbase aicpu host/device 两侧共 84 个源文件强制重编,零错误 - ops-math/ops-nn/ops-cv/ops-transformer 四仓编包全部通过 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfMxjhHAYKukSCh5pKfjeG | 27 天前 | |
修改opdev API MD中描述不正确的内容 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !686 merge master into master 修改opdev API MD中描述不正确的内容 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改opdev API MD中描述不正确的内容 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ X] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!686 | 1 个月前 | |
refactor(aicpu_common): 按对外可见性拆分头文件源码目录 将 pkg_inc/op_common/aicpu_common/context 下 35 个头文件按"谁在用" 拆分到两处,使对外契约面与 opbase 内部实现在源码目录上物理隔离: - 17 个仅 opbase 使用的头 -> aicpu_common/context/{common,cpu_proto} (框架 cache/sharder/threadpool/async + cpu_proto 的 *_impl,与对应 .cc 同级) - 18 个对外公开的头 -> include/op_common/aicpu_common/context/ (15 个被 ops-cv/math/nn/transformer 直接 include,加 3 个传递依赖: cpu_kernel_register.h、device_cpu_kernel.h 经 node_def_builder.h; log_weak.h 经 log.h) 头文件内容零改动;装包目的地路径一律不变,package.cmake 只改 install 的源路径,下游四仓零感知。 配套构建改动: - aicpu_context_headers 的 include 目录 4 -> 8(.cc 里 include 均为裸文件名, 跨目录必须显式在 path 上) - package.cmake 中 pkg_inc/aicpu_common 装包拆为「公开侧整目录 install + 私有 17 头 install(FILES ... PERMISSIONS)」,合并回同一目的地 - include/op_common 整目录 install 新增 PATTERN "aicpu_common" EXCLUDE, 避免公开头被扫进 include/op_common 产生冗余副本 验证(远端 aarch64 + CANN 9.2.0): - 完整 .run 编包基线/改动后双向比对:211 个文件集合完全相同,208 个逐字节 一致,其余 3 个仅因构建时间戳而异;权限位 0 差异 - opbase aicpu host/device 两侧共 84 个源文件强制重编,零错误 - ops-math/ops-nn/ops-cv/ops-transformer 四仓编包全部通过 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfMxjhHAYKukSCh5pKfjeG | 27 天前 | |
refactor(aicpu_common): 按对外可见性拆分头文件源码目录 将 pkg_inc/op_common/aicpu_common/context 下 35 个头文件按"谁在用" 拆分到两处,使对外契约面与 opbase 内部实现在源码目录上物理隔离: - 17 个仅 opbase 使用的头 -> aicpu_common/context/{common,cpu_proto} (框架 cache/sharder/threadpool/async + cpu_proto 的 *_impl,与对应 .cc 同级) - 18 个对外公开的头 -> include/op_common/aicpu_common/context/ (15 个被 ops-cv/math/nn/transformer 直接 include,加 3 个传递依赖: cpu_kernel_register.h、device_cpu_kernel.h 经 node_def_builder.h; log_weak.h 经 log.h) 头文件内容零改动;装包目的地路径一律不变,package.cmake 只改 install 的源路径,下游四仓零感知。 配套构建改动: - aicpu_context_headers 的 include 目录 4 -> 8(.cc 里 include 均为裸文件名, 跨目录必须显式在 path 上) - package.cmake 中 pkg_inc/aicpu_common 装包拆为「公开侧整目录 install + 私有 17 头 install(FILES ... PERMISSIONS)」,合并回同一目的地 - include/op_common 整目录 install 新增 PATTERN "aicpu_common" EXCLUDE, 避免公开头被扫进 include/op_common 产生冗余副本 验证(远端 aarch64 + CANN 9.2.0): - 完整 .run 编包基线/改动后双向比对:211 个文件集合完全相同,208 个逐字节 一致,其余 3 个仅因构建时间戳而异;权限位 0 差异 - opbase aicpu host/device 两侧共 84 个源文件强制重编,零错误 - ops-math/ops-nn/ops-cv/ops-transformer 四仓编包全部通过 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfMxjhHAYKukSCh5pKfjeG | 27 天前 | |
fix: deb/rpm 安装后补充 opp/vendors 空目录,卸载时清理 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !688 merge master into master fix: deb/rpm 安装后补充 opp/vendors 空目录,卸载时清理 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 deb/rpm 包安装后缺少 opp/vendors 空目录,导致与 run 包安装结果不一致。 **改动方法:** - custom_postinst.sh:安装后创建 ${INSTALL_PATH}/opp/vendors 空目录(权限 555) - custom_prerm.sh:卸载前在目录为空时删除 opp/vendors,避免误删用户自定义内容 ## 关联的Issue - #292 ## 测试 对比 run/deb/rpm 三种包安装后的文件列表、内容 md5、权限和空目录: - run 包安装包含 4 个空目录(含 opp/vendors),deb/rpm 缺失该目录 - 修复后 deb/rpm 安装后 opp/vendors 存在,卸载后正确清理 - 其余文件内容 md5 完全一致 ## 文档更新 无需更新文档。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!688 | 1 个月前 | |
Support builtin AICPU json package loading Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !666 merge feature/aclnn-aicpu-builtin-json-load into master Support builtin AICPU json package loading Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 支持从 ASCEND_OPP_PATH 加载内置 AICPU JSON 包及对应的 kernel so,并将内置包与自定义包纳入统一的注册和加载流程。 主要改动: 1. 扫描并按序解析 built-in/op_impl/aicpu/config 下的 JSON 配置。 2. 为 JSON 文件和算子注册信息增加包类型,按自定义/内置类型解析 kernel so 路径。 3. 注册内置算子前校验 kernel so 路径;单个 JSON 解析失败或缺少 op_infos 时继续处理后续配置。 4. 保留自定义算子黑名单逻辑,并在未配置自定义算子路径时继续加载内置包。 ## 关联的Issue #294 ## 测试 当前 PR 未包含测试代码或测试结果,建议执行以下验证: 1. **编译构建测试** - 完整编译 opbase,验证头文件及实现变更能够通过编译和链接。 2. **内置包加载功能验证** - 配置 ASCEND_OPP_PATH,验证多个内置 JSON 能按序解析、算子可从注册表查询,且 kernel so 从 built-in/op_impl/aicpu/kernel 正确加载。 3. **异常配置验证** - 覆盖空配置目录、无效 JSON、缺少 op_infos、空 kernelSo、无效 so 路径和重复算子,确认跳过异常项并继续加载其他配置。 4. **自定义算子回归测试** - 验证 ASCEND_CUSTOM_OPP_PATH 加载、黑名单过滤、重复注册和自定义 kernel so 加载行为保持正常。 5. **环境变量组合验证** - 分别验证仅设置 ASCEND_OPP_PATH、仅设置 ASCEND_CUSTOM_OPP_PATH、同时设置及均未设置的场景。 ## 文档更新 本 PR 未修改文档。该变更涉及内置 AICPU JSON 包目录约定,如该约定面向外部开发者,建议同步更新相关开发文档。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!666 | 30 天前 | |
增加mc2维测打印 Co-authored-by: pengjiahao96<pengjiahao@huawei.com> # message auto-generated for no-merge-commit merge: !660 merge master into master 增加mc2维测打印 Created-by: pengjiahao96 Commit-by: pengjiahao96 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!660 | 1 个月前 | |
refactor: 更新 clang-format 规范并对全量代码进行格式化 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !535 merge master into master refactor: 更新 clang-format 规范并对全量代码进行格式化 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 本 PR 更新 .clang-format 格式化规范配置,并依据新规则对全量代码进行格式化重排,同时调整 classify_rule.yaml 中 op_host 目录的归属。 ### 改动原因 - 原 AlignAfterOpenBracket: AlwaysBreak 规则会在左括号后强制换行,导致部分本可单行容纳的函数声明/调用被拆散,降低代码可读性。 - 调整为 Align 并新增 PenaltyBreakAssignment: 1000,使格式化器优先在左括号后对齐参数,仅在超长时才换行。 - ops-base/include/op_common/op_host/ 目录维护责任由 HPTG2 团队调整至 VC2 团队,在 classify_rule.yaml 中同步更新归属。 ### 改动方法 1. 修改 .clang-format:AlignAfterBracket 由 AlwaysBreak 改为 Align,新增 PenaltyBreakAssignment: 1000。 2. 修改 classify_rule.yaml:将 ops-base/include/op_common/op_host/ 从 HPTG2@ops-base 的 release style 列表移除,加入 VC2@ops-base 的 release style 列表。 3. 依据新的 .clang-format 规则对以下范围共 282 个文件进行全量格式化(+10422 / -12142): - 测试文件(tests/):61 个 - composite_op(src/nnopbase/composite_op/):43 个 - atvoss(pkg_inc/op_common/atvoss/):43 个 - 头文件(include/):32 个 - individual_op(src/nnopbase/individual_op/):31 个 - common(src/nnopbase/common/):28 个 - aicpu_common(pkg_inc/op_common/aicpu_common/):24 个 - op_common/aicpu 源码(src/op_common/、src/nnopbase/aicpu/):16 个 - 其他(aicpu_common/context 等):4 个 主要格式化变化:指针/引用贴类型名(const void* const、const auto&)、模板尖括号前加空格(template <typename T>)、单行可容纳的函数体折叠为一行、函数参数在左括号后对齐而非强制换行、宏续行符统一对齐。 ## 关联的Issue - #226 ## 测试 纯代码格式化变更,不涉及逻辑修改;通过编译验证及存量单元测试(ut)/二级冒烟测试(st)验证格式化未改变代码语义。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化规范重构 See merge request: cann/opbase!535 | 2 个月前 | |
Docs: data_type_utils相关接口资料更新 Co-authored-by: ren-botao<renbotao@h-partners.com> # message auto-generated for no-merge-commit merge: !680 merge doc_data_type_util into master Docs: data_type_utils相关接口资料更新 Created-by: ren-botao Commit-by: ren-botao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 资料问题修改: 1. op_common/data_type_utils.h 头文件后续版本将废弃,相关接口挪到opdev/data_type_utils.h中,新增接口废弃说明,和新头文件中新增接口说明。 2. 修正 float 数据类型文档中 infinity() / signaling_NaN() 等函数返回值描述 3. 改写 small_vector 的 reserve() / ExpandCap() 接口描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#290 data_type_utils相关接口资料更新](https://gitcode.com/cann/opbase/issues/290) [#255 代码和文档不一致:ToString接口缺少文档](https://gitcode.com/cann/opbase/issues/255) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> data_type_utils目录下相关文档; float8/6/4相关文档 small_vector.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!680 | 1 个月前 | |
增加静态算子包加载接口,允许传入用户自定义路径 Co-authored-by: ren-botao<renbotao@h-partners.com> # message auto-generated for no-merge-commit merge: !598 merge master into master 增加静态算子包加载接口,允许传入用户自定义路径 Created-by: pengjiahao96 Commit-by: ren-botao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 aclnnReselectStaticKernelWithPath 接口,支持使用自定义目录下的静态算子包。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#250](https://gitcode.com/cann/opbase/issues/250) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 新增了 aclnnReselectStaticKernelWithPath 相关的UT测试用例,构造缓存,调用接口,检测缓存是否被清理,static kernel是否增量更新 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!598 | 1 个月前 | |
调整README大纲和mdlint/link等低错全量修复 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !324 merge master into master 调整README大纲和mdlint/link等低错全量修复 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 调整README大纲和mdlint/link低错修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [121](https://gitcode.com/cann/opbase/issues/121) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> README、QUICKSTART、doc整个目录 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!324 | 4 个月前 | |
feat: support deb/rpm package publishing Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !678 merge master into master feat: support deb/rpm package publishing Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 为 opbase 仓库支持 deb/rpm 包发布能力,参考 ops-math/4178 PR 的改动。 ### 改动原因 ops-math 已支持 deb/rpm 包发布,opbase 仓需要对齐该能力,使 opbase 能在 Debian/Ubuntu 和 RHEL/CentOS 等系统上通过原生包管理器安装。 ### 改动方法 1. **CMakeLists.txt**: 新增 PACKAGE_TYPE cache 变量,支持 run/rpm/deb/all 四种包类型 2. **build.sh**: 新增 --pkg-type 参数,实现 rpm/deb/all 构建流程(含 clean_rpm_deb_package / collect_rpm_deb_package / find_rpm_deb_package) 3. **cmake/fetch_cann_cmake.cmake**: cann-cmake 从 master-026 升级到 master-041(新版内置 deb/rpm 打包能力),移除固定 URL_HASH 4. **cmake/package.cmake**: set_cann_cpack_config 传入 PACKAGE_TYPE;移除 path.cfg(改由新 cann-cmake 统一处理) 5. **scripts/package/module/ascend/EngineeringFiles.xml**: 删除(新 cann-cmake 不再依赖该文件) 6. **scripts/package/opbase/opbase.xml**: scene.info install_mod 调整为 640;移除 EngineeringFiles block 引用 7. **scripts/tools/third_lib_download.py**: cann-cmake 下载 URL 更新为 master-041 与 ops-math/4178 的主要差异: - opbase 的 build.sh 未拆分,不涉及 ops-math 的模块化脚本改造 - opbase 不依赖 whl 包,无需 custom_postinst.sh / custom_prerm.sh ## 测试 - 通过 bash build.sh --pkg --pkg-type=all -j32 成功构建 run/rpm/deb 三种包 - 三种包分别通过各自系统包管理器安装后,对安装内容进行全量对比: - RPM 与 DEB 安装后内容完全一致(210 个文件,MD5 全部匹配) - RUN 与 RPM/DEB 共有文件内容、软链接完全一致 - 差异项仅为各包管理器自有的运维文件(如 RUN 安装器生成的软链接/卸载脚本/元数据),非包内容差异 ## 关联的Issue - #289 ## 文档更新 无 ## 类型标签 - [x] 新特性 See merge request: cann/opbase!678 | 1 个月前 | |
调整README大纲和mdlint/link等低错全量修复 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !324 merge master into master 调整README大纲和mdlint/link等低错全量修复 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 调整README大纲和mdlint/link低错修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [121](https://gitcode.com/cann/opbase/issues/121) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> README、QUICKSTART、doc整个目录 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!324 | 4 个月前 | |
init | 11 个月前 | |
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !268 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!268 | 4 个月前 | |
刷新cann版本描述 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !611 merge master into master 刷新cann版本描述 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 刷新cann版本描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> README.md和quick_install.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!611 | 1 个月前 | |
合入英文文档 Co-authored-by: claire8090<yuantao27@h-partners.com> # message auto-generated for no-merge-commit merge: !654 merge master into master 合入英文文档 Created-by: claire8090 Commit-by: claire8090 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 添加6.1基线的英文文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!654 | 1 个月前 | |
refactor: 移除三方库 CMake 构建脚本,切换公共仓下载接口 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !415 merge master into master refactor: 移除三方库 CMake 构建脚本,切换公共仓下载接口 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 移除本地三方库 CMake 构建脚本(boost、eigen、gtest、mockcpp、nlohmann_json),切换为通过公共仓接口下载 third-party 插件。 ### 改动原因 原方案在每个三方库的 CMake 脚本中分别使用 FetchContent/ExternalProject_Add 从远程 URL 下载和构建,各脚本逻辑重复,下载源地址分散,不便于统一管理。切换到公共仓接口后,三方库的获取由统一入口管理,简化构建流程。 ### 改动方法 删除以下 5 个 CMake 构建脚本: - cmake/third_party/boost.cmake(FetchContent 方式下载 boost 1.87.0) - cmake/third_party/eigen.cmake(ExternalProject 方式下载 eigen 5.0.0) - cmake/third_party/gtest.cmake(find_package + ExternalProject 方式管理 gtest 1.14.0) - cmake/third_party/mockcpp.cmake(ExternalProject 方式下载 mockcpp 2.7) - cmake/third_party/nlohmann_json.cmake(ExternalProject 方式下载 json 3.11.3) 三方库获取改为由公共仓统一接口提供。 ## 关联的Issue - https://gitcode.com/cann/opbase/issues/186 ## 测试 本地构建测试通过,二级冒烟测试通过。 ## 文档更新 NA ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!415 | 2 个月前 | |
修改三方件boost、mockcpp使用场景为test Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !195 merge master into master 修改三方件boost、mockcpp使用场景为test Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改三方件boost、mockcpp使用场景为test ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!195 | 5 个月前 | |
feat: support deb/rpm package publishing Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !678 merge master into master feat: support deb/rpm package publishing Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 为 opbase 仓库支持 deb/rpm 包发布能力,参考 ops-math/4178 PR 的改动。 ### 改动原因 ops-math 已支持 deb/rpm 包发布,opbase 仓需要对齐该能力,使 opbase 能在 Debian/Ubuntu 和 RHEL/CentOS 等系统上通过原生包管理器安装。 ### 改动方法 1. **CMakeLists.txt**: 新增 PACKAGE_TYPE cache 变量,支持 run/rpm/deb/all 四种包类型 2. **build.sh**: 新增 --pkg-type 参数,实现 rpm/deb/all 构建流程(含 clean_rpm_deb_package / collect_rpm_deb_package / find_rpm_deb_package) 3. **cmake/fetch_cann_cmake.cmake**: cann-cmake 从 master-026 升级到 master-041(新版内置 deb/rpm 打包能力),移除固定 URL_HASH 4. **cmake/package.cmake**: set_cann_cpack_config 传入 PACKAGE_TYPE;移除 path.cfg(改由新 cann-cmake 统一处理) 5. **scripts/package/module/ascend/EngineeringFiles.xml**: 删除(新 cann-cmake 不再依赖该文件) 6. **scripts/package/opbase/opbase.xml**: scene.info install_mod 调整为 640;移除 EngineeringFiles block 引用 7. **scripts/tools/third_lib_download.py**: cann-cmake 下载 URL 更新为 master-041 与 ops-math/4178 的主要差异: - opbase 的 build.sh 未拆分,不涉及 ops-math 的模块化脚本改造 - opbase 不依赖 whl 包,无需 custom_postinst.sh / custom_prerm.sh ## 测试 - 通过 bash build.sh --pkg --pkg-type=all -j32 成功构建 run/rpm/deb 三种包 - 三种包分别通过各自系统包管理器安装后,对安装内容进行全量对比: - RPM 与 DEB 安装后内容完全一致(210 个文件,MD5 全部匹配) - RUN 与 RPM/DEB 共有文件内容、软链接完全一致 - 差异项仅为各包管理器自有的运维文件(如 RUN 安装器生成的软链接/卸载脚本/元数据),非包内容差异 ## 关联的Issue - #289 ## 文档更新 无 ## 类型标签 - [x] 新特性 See merge request: cann/opbase!678 | 1 个月前 | |
cleanCode修改 Co-authored-by: h1234515<huangzhiyuan21@huawei.com> # message auto-generated for no-merge-commit merge: !622 merge newchange into master cleanCode修改 Created-by: h1234515 Commit-by: h1234515 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> cleanCode修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/opbase/issues/264 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!622 | 1 个月前 | |
refactor: 消减第三方依赖并补充编译并发选项文档 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !656 merge master into master refactor: 消减第三方依赖并补充编译并发选项文档 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 减少项目不必要的第三方依赖,并补充编译并发选项的文档说明。 ### 第三方依赖消减 - 从 install_deps.sh 中移除 install_googletest 函数(49行),不再作为项目必装依赖 - 删除 requirements.txt 文件(仅含 pyyaml),不再要求用户手动安装 - 同步移除中英文文档及目录结构描述中的 requirements.txt 相关内容 ### 编译并发文档补充 - 在 docs/QUICKSTART.md 中为 build.sh 命令新增 --pkg 参数和 -j{n} 编译线程数选项的说明 - 补充示例命令,帮助用户通过 -j 参数加速编译 ## 关联的Issue https://gitcode.com/cann/opbase/issues/275 https://gitcode.com/cann/opbase/issues/274 ## 测试 - 验证 install_deps.sh 在不包含 googletest 安装逻辑后仍可正常运行 - 验证删除 requirements.txt 后编译流程不受影响 ## 文档更新 - docs/QUICKSTART.md:移除 requirements.txt 安装命令,新增 build.sh 并发编译参数说明 - docs/en/install/quick_install.md:移除 requirements.txt 安装步骤 - docs/zh/install/quick_install.md:移除 requirements.txt 安装步骤 - docs/zh/appendix/dir_structure.md:移除 requirements.txt 文件说明 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:第三方依赖消减 See merge request: cann/opbase!656 | 1 个月前 | |
opbase修改适配多仓联编。 Co-authored-by: Feiteng Zheng<zhengfeiteng1@h-partners.com> # message auto-generated for no-merge-commit merge: !500 merge 20260608-adapt-superbuild into master opbase修改适配多仓联编。 Created-by: zhengfeiteng Commit-by: Feiteng Zheng Merged-by: cann-robot Description: ## 描述 opbase修改适配多仓联编。 ## 关联的Issue https://gitcode.com/cann/opbase/issues/206 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 对比修改前后opbase包二进制。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/opbase!500 | 2 个月前 |
opbase
🔥Latest News
- [2025/12] 支持kirinx90,支持离线编译。
- [2025/09] opbase项目首次上线。
🚀概述
opbase是CANN (Compute Architecture for Neural Networks)算子库依赖的基础框架库,其提供基础的调度能力和公共依赖项,包括公共的头文件、结构体、调度框架等。关于CANN算子库请访问ops-math、ops-nn、ops-cv、ops-transformer获取算子源码实现详情。

📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,命令如下,${tag_version}替换为分支标签名。
说明:若环境中已存在配套分支源码,可跳过本步骤。
git clone -b ${tag_version} https://gitcode.com/cann/opbase.git
📖学习教程
💬相关信息
本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。