| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
cv support dev-tools Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !869 merge dev-tools into master cv support dev-tools Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 为 ops-cv 项目添加 mmpa 库的依赖支持。 **变更内容**: 1. 新增 cmake/modules/Findmmpa.cmake 模块文件 (+42 行) - 定义 mmpa 库的查找路径 (${ASCEND_DIR}/${SYSTEM_PREFIX}/lib64) - 设置库的导入属性 (IMPORTED_LOCATION) 2. 修改 cmake/dependencies.cmake (+1 行) - 添加 find_package(mmpa MODULE) 调用 3. 修改 common/stub/op_graph/CMakeLists.txt (+1 行) - 在 target_link_libraries 中添加 mmpa 库链接 ## 关联的Issue #450 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置,验证 mmpa 库能被正确查找 - 执行完整构建流程,验证链接成功 2. **CMake 配置验证** - 验证 Findmmpa.cmake 模块正确加载 - 验证 MMPA_LIB_DIR 路径正确解析 3. **功能验证测试** - 验证包含 mmpa 依赖的模块能正常编译 - 验证生成的库能正常运行 ## 文档更新 无需文档更新(构建配置优化) ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!869 | 3 个月前 | |
rdv-support Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !931 merge dev into master rdv-support Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增 ST(System Test)测试框架支持,集成 ops-test-kit 工具,实现算子精度自动化测试和结果汇总。 主要变更: 1. **CMakeLists.txt**: 新增 DOWNLOAD_OPS_TEST_KIT 选项,通过 FetchContent 按需下载 ops-test-kit 2. **cmake/third_party/ops_test_kit.cmake**: 新增 ops-test-kit 下载逻辑,支持本地 tar.gz 包、Git SSH、Git HTTPS 三种方式 3. **scripts/ci/ops_st_test.sh**: 新增 ST 测试入口脚本,支持按算子、按 SoC 版本灵活配置测试 4. **scripts/ci/ops_test_util.py**: 新增测试结果处理工具,包含精度检查、CSV 汇总、表格化输出等功能 ## 关联的Issue #510 ## 测试 1. **编译构建测试** - 执行 cmake -DDOWNLOAD_OPS_TEST_KIT=ON 验证 ops-test-kit 下载逻辑 - 验证本地包/SSH/HTTPS 三种下载路径均正常工作 2. **ST 测试功能验证** - tests/st目录下补充arch35/*.csv,assets/golden.py - 执行 bash scripts/ci/ops_st_test.sh --soc_version=ascend950 --ops=abs 验证 ST 测试流程 - 验证精度检查结果正确输出(PASS/FAIL 状态、DynPrec/CstPrec/BinPrec 精度值) - 验证汇总表格格式正确显示 3. **兼容性验证** - 验证 DOWNLOAD_OPS_TEST_KIT=OFF 时不影响原有构建流程 - 验证已有 ops-test-kit 目录时跳过下载 ## 文档更新 无文档更新 ## 类型标签 - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!931 | 2 个月前 | |
update copyright and update inclue file experiment_ops Co-authored-by: “qiang_zq”<qiang.zhangqiang@huawei.com> # message auto-generated for no-merge-commit merge: !78 merge license into master update copyright and update inclue file experiment_ops Created-by: qiang_zq Commit-by: “qiang_zq” Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-cv!78 | 8 个月前 | |
cv support dev-tools Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !869 merge dev-tools into master cv support dev-tools Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 为 ops-cv 项目添加 mmpa 库的依赖支持。 **变更内容**: 1. 新增 cmake/modules/Findmmpa.cmake 模块文件 (+42 行) - 定义 mmpa 库的查找路径 (${ASCEND_DIR}/${SYSTEM_PREFIX}/lib64) - 设置库的导入属性 (IMPORTED_LOCATION) 2. 修改 cmake/dependencies.cmake (+1 行) - 添加 find_package(mmpa MODULE) 调用 3. 修改 common/stub/op_graph/CMakeLists.txt (+1 行) - 在 target_link_libraries 中添加 mmpa 库链接 ## 关联的Issue #450 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置,验证 mmpa 库能被正确查找 - 执行完整构建流程,验证链接成功 2. **CMake 配置验证** - 验证 Findmmpa.cmake 模块正确加载 - 验证 MMPA_LIB_DIR 路径正确解析 3. **功能验证测试** - 验证包含 mmpa 依赖的模块能正常编译 - 验证生成的库能正常运行 ## 文档更新 无需文档更新(构建配置优化) ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!869 | 3 个月前 | |
feat(build): 支持 --pkg-type=deb/rpm 包构建 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1058 merge master_deb_rpm into master feat(build): 支持 --pkg-type=deb/rpm 包构建 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 为 ops-cv 增加 **deb / rpm** 包构建能力。原来的 bash build.sh --pkg 只能出 run 包(External generator),本次在 run 之外加 deb / rpm 两种格式,沿用 cann-cmake 公共仓的 set_cann_cpack_config(... PACKAGE_TYPE ...) 通道,不引入新的打包框架。 ### 改动清单 **CMakeLists.txt** - 新增 PACKAGE_TYPE 缓存选项,值域 run / rpm / deb,默认 run,透传给 cmake/package.cmake 的 set_cann_cpack_config **build.sh** - 新增 --pkg-type=run|rpm|deb 参数(默认 run),长选项白名单同步加 pkg-type= - 新增 check_pkg_type() 校验函数,在 getopts 阶段做值合法性校验 - check_param 阶段新增三条互斥约束: - --pkg-type 必须与 --pkg 配合 - --pkg-type=rpm|deb 不允许与 --static / --jit 共用 - --pkg-type=rpm|deb 不允许与 --ops / --vendor_name / --experimental 共用(只支持内置算子打包) - assemble_cmake_args 透传 -DPACKAGE_TYPE=${PACKAGE_TYPE} 给 cmake - 三个新函数: - find_rpm_deb_package — 共享的 find 实现,glob 收紧为 cann-ops-cv*.${TYPE},排除 .tmp / .bak / .partial 和 BUILD_OUT_PATH - clean_rpm_deb_package — 在 cmake --build . --target package 之前清理 BUILD_PATH 下残留的同类型旧包 - collect_rpm_deb_package — 构建成功后从 BUILD_PATH 拷贝到 BUILD_OUT_PATH,找不到包则 [ERROR] 退出 - cmake --build . --target package 失败立即 exit 1,避免后续 collect 误把旧产物当新构建结果拷贝 **cmake/package.cmake** - 透传 PACKAGE_TYPE 给 set_cann_cpack_config - 显式补齐 CANN_VERSION_ops-cv_VERSION 和 CANN_VERSION_ops-cv_VERSION_MAJOR_MINOR 两个变量: version.cmake 用下划线名 ops_cv 注册,set_cann_cpack_config 用连字符 component ops-cv;cann-cmake 公共仓 prepare.cmake 在拼装版本号时按 component 拼出的变量名是连字符的(CANN_VERSION_ops-cv_VERSION),直接读会拿到空,显式赋值避免 CPACK_PACKAGE_VERSION 退化为空、产物文件名变成 cann-ops-cv__Linux-x86_64.{deb,rpm} 这种缺版本号形态 **scripts/package/ops_cv/ops_cv.xml** - scene.info 安装权限 440 → 640 - share/info/ops_cv 目录权限 550 → 750 - version.info 显式 install_mod="440" - 目的:配合 deb / rpm 的 postinst 脚本在 share/info/ops_cv/ 目录下写 version.info,确保安装后该目录属主可写,version.info 自身只读 ### 触发方式 bash bash build.sh --pkg --pkg-type=deb --soc=ascend910b -j16 bash build.sh --pkg --pkg-type=rpm --soc=ascend910b -j16 bash build.sh --pkg # 默认 run,与原行为一致 ## 关联的Issue 无 ## 测试 - [x] --pkg 默认 run 包构建,产物路径和文件名与改前一致(回归) - [x] --pkg --pkg-type=deb 在 Ubuntu 22.04 容器内构建出 cann-ops-cv_<ver>_linux-x86_64.deb,dpkg-deb -I 校验 Package: cann-ops-cv、Version: 9.1.0 正常 - [x] --pkg --pkg-type=rpm 在 openEuler 22.03 容器内构建出 cann-ops-cv-<ver>-<arch>.rpm,rpm -qpi 校验 Package / Version 正常 - [x] 重复跑 --pkg --pkg-type=deb:clean_rpm_deb_package 正确清掉上次 .deb,collect_rpm_deb_package 拿到的是本次新产物 - [x] --pkg-type=deb 与 --static / --jit / --ops / --experimental 组合:check_param 按预期报 [ERROR] 退出 - [x] --pkg-type=invalid:预校验 + getopts 两阶段都按预期报 [ERROR] --pkg-type only supports run/rpm/deb - [x] cmake --build . --target package 故意制造失败(临时改坏 pack_built_in):脚本在 exit 1 处停下,不会把上次的旧 .deb 误拷出来 ## 文档更新 无(用户面向接口和命令行未变,只新增参数,help 文本和 examples 在 build.sh 内已更新) ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1058 | 2 个月前 | |
去除代码中显式的CheckLogLevel调用,改为使用OP_LOGD正式日志接口 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !994 merge master_remove_checklog into master 去除代码中显式的CheckLogLevel调用,改为使用OP_LOGD正式日志接口 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 去除 common/inc/op_host/tiling_base.h 中 TilingBaseClass::DumpTilingInfo() 里显式的 CheckLogLevel 调用,改为直接使用 OP_LOGD 正式日志接口。 **变更内容**(2 个文件,+8/-6): **1. common/inc/op_host/tiling_base.h(+7/-5)—— 主题改动** - DumpTilingInfo() 内部去掉"先 CheckLogLevel 判级别、再 OP_LOGD"的两步式写法 - 拆出 int64_t DefaultTilingInfoDump() 成员函数,把"获取 raw tiling data + 构造 oss + 调 OP_LOGD"逻辑搬过去 - DumpTilingInfo() 简化为:OP_LOGD(context_, "%ld", DefaultTilingInfoDump());——把日志级别判断交给 OP_LOGD 内部 - DefaultTilingInfoDump() 返回 int64_t(占位 return 0),便于后续可测 / 可 mock - 顺手补文件末尾换行 **2. cmake/func.cmake(+1/-1)—— 顺手补 include path** diff - target_include_directories(opbase_util_objs PRIVATE ${OP_TILING_INCLUDE}) + target_include_directories(opbase_util_objs PRIVATE ${OP_TILING_INCLUDE} ${ASCEND_DIR}/pkg_inc) add_opbase_modules() 中给 opbase_util_objs target 补 ${ASCEND_DIR}/pkg_inc include path——让 opbase_util_objs 能找到 CANN 包自带的额外头文件,避免部分构建场景下 include 路径缺失。 > **关于变更范围说明**:本 PR 主题是"去 CheckLogLevel",cmake/func.cmake 这一行改动不属于该主题——属于顺手补 include path 的小修(同一特性切片下发现的构建缺失)。考虑到改动量极小(+1/-1)且跟其他 opbase_util_objs 的 include 配置类似,**合并到本 PR 比单独开 PR 更经济**。如果 reviewer 倾向于严格原子提交,可以拆出另开 PR。 **功能等价性**(针对主题改动 tiling_base.h): | 行为 | 改前 | 改后 | |---|---|---| | 日志级别不达 debug | CheckLogLevel 返回 0 → 早退(不打 log) | OP_LOGD 内部判级别,不达 debug 不输出 | | 日志级别达 debug | 打 "Start to dump tiling info..." | 先打 "0"(%ld 的占位值),再打 "Start to dump..." | | ABI 兼容性 | virtual void DumpTilingInfo() 签名不变 | DefaultTilingInfoDump() 是 protected 非 virtual,子类可继承但不能 override | **已知小问题**(不影响功能):改后每次 dump 会**多打一条 "0" 的冗余 log**——这是为了保留 DefaultTilingInfoDump 作为可独立调用 / 可测试的接口而做的妥协。后续如需清理这条冗余 log,可单独提交 PR 处理。 ## 关联的Issue 关闭 Issue: [#537](https://gitcode.com/cann/ops-cv/issues/537)(去除 TilingBaseClass::DumpTilingInfo 中显式的 CheckLogLevel 调用,改为使用 OP_LOGD 日志接口) ## 测试 - [x] **编译验证**:bash build.sh -u --ophost --soc=ascend910b --ops=add_example 通过 - [ ] **UT 抽样**:跑 image/grid_sample/tests/ut/op_host/test_grid_sample_tiling.cpp 等含 DumpTilingInfo 间接覆盖的用例 - [ ] **日志验证**:开启 DLOG_DEBUG=1 跑一个算子,对比改前/改后 log 数量和内容(应**多 1 条** "0") - [ ] **CI 编译门禁**:review 完后 /compile 评论触发 GitCode CI ## 文档更新 - 不涉及 README.md / CONTRIBUTING.md / docs/ 改动 - tiling_base.h 头注释未变 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!994 | 2 个月前 | |
构建增加ccache 参数控制,支持编译时禁用ccache, 构建时灵活选择缓存方式 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1004 merge master_ccache into master 构建增加ccache 参数控制,支持编译时禁用ccache, 构建时灵活选择缓存方式 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 build.sh 增加 --ccache=<VALUE> 参数控制,支持编译时禁用 ccache,让用户在编译时灵活选择是否使用缓存。 VALUE 选项:on / off / true / false / disable,**默认 on** 示例:bash build.sh --ccache=off 关闭 ccache **变更内容**(3 个文件,+29/-7): **1. CMakeLists.txt(+8/-4)** - 新增 ENABLE_CCACHE option(默认 ON) - 把"无条件 find_program(ccache)"改成"if(ENABLE_CCACHE) 守卫" - 加 message(STATUS "Enable ccache ${ENABLE_CCACHE}") 让配置阶段可见 **2. build.sh(+20/-2)** - SUPPORTED_LONG_OPTS 数组加 "ccache=" - usage() 函数 8 个分支各加一行 --ccache=<VALUE> 帮助(覆盖 ophost / opapi / opgraph / onnxplugin / tfplugin / ut / package 等所有编译模式) - checkopts() 解析 ccache=* 选项:off / false / disable → ENABLE_CCACHE=FALSE;其他值(含无效值)保持默认 TRUE - assemble_cmake_args() 把 -DENABLE_CCACHE=${ENABLE_CCACHE} 拼进 CMAKE_ARGS - 主流程所有 cmake ${CMAKE_ARGS} .. 调用自动带上 ENABLE_CCACHE(含 cmake_init() / build_static_lib() 等所有 8 个调用点) **3. cmake/gen_ops_info.cmake(+1/-1)** - if(${CMAKE_CXX_COMPILER_LAUNCHER} MATCHES "ccache$") → if("${CMAKE_CXX_COMPILER_LAUNCHER}" MATCHES "ccache$") - 修复 ${CMAKE_CXX_COMPILER_LAUNCHER} 未定义时的 CMake 警告 **功能等价性**: | 行为 | 改前 | 改后 | |---|---|---| | 不传 --ccache= | 系统有 ccache → 自动启用;无 ccache → 不启用 | 同上,但显式 ENABLE_CCACHE=ON 默认值 | | --ccache=off / =false / =disable | 不支持(忽略) | ENABLE_CCACHE=FALSE,不查 ccache、不设置 LAUNCHER | | --ccache=on / =true / 其他有效值 | 不支持 | 显式 ENABLE_CCACHE=TRUE | | --ccache=invalid_value | 不支持 | 保持默认 TRUE(与不传一致) | | genop 路径(cmake_init)| 不支持 | 通过 ${CMAKE_ARGS} 自动传递,**无需在 cmake_init() 中重复传参** | ## 关联的Issue 关闭 Issue: #540(https://gitcode.com/cann/ops-cv/issues/540) ## 测试 - [x] **基础编译验证**:bash build.sh --ophost 通过(master 验证过) - [ ] **禁用 ccache 验证**:bash build.sh --ophost --ccache=off,确认 CMakeCache.txt 中 ENABLE_CCACHE:BOOL=FALSE - [ ] **无效值回退**:bash build.sh --ophost --ccache=invalid_value,确认 ENABLE_CCACHE 保持 TRUE - [ ] **多模式覆盖**:--pkg --soc=ascend910b --ccache=off、--opkernel --ccache=off、-u --ccache=off 各跑一遍 - [ ] **genop 路径覆盖**:跑 bash build.sh --genop=... --ccache=off,确认 cmake_init() 走 ${CMAKE_ARGS} 也能拿到 ENABLE_CCACHE - [ ] **CI 编译门禁**:/compile 评论触发 GitCode CI ## 文档更新 - 不涉及 README.md / CONTRIBUTING.md / docs/ 改动 - build.sh 的 usage() 已包含完整 --ccache=<VALUE> 帮助 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1004 | 2 个月前 | |
support ut cov Co-authored-by: “qiang_zq”<qiang.zhangqiang@huawei.com> # message auto-generated for no-merge-commit merge: !120 merge master into master support ut cov Created-by: qiang_zq Commit-by: “qiang_zq” Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-cv!120 | 8 个月前 | |
add some new project features. Co-authored-by: liukejin<liukejin@huawei.com> # message auto-generated for no-merge-commit merge: !91 merge merge_project into master add some new project features. Created-by: liukejin Commit-by: liukejin Merged-by: cann-robot Description: ## 描述 add some new project features. 1. add gen timestamp script to append version_info a timestamp 2. support operators pkg cross-compilation 3. update install scripts 4. cmd support asan cov ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-cv!91 | 8 个月前 | |
fix(cmake): 显式添加 onnx plugin protobuf 依赖 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !895 merge master_plugin_proto into master fix(cmake): 显式添加 onnx plugin protobuf 依赖 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 ops-cv 的 ONNX plugin 存在 protobuf 依赖仅通过 include 路径隐式传递的问题。本次调整 CMake 依赖声明,修正 protobuf、opbuild 工具路径和 ophost 符号依赖相关配置: - 在 add_onnx_plugin_modules 中移除 ${PROTOBUF_SRC_DIR}/src 和 ${PROTOBUF_INCLUDE_DIRS} 的直接 include 配置。 - 在 ${ONNX_PLUGIN_NAME}_obj 的 target_link_libraries 中显式添加 ascend_protobuf_static,让 ONNX plugin object target 通过 CMake target 建立 protobuf 构建依赖。 - 在 opbuild_aicpu_ini 中使用已解析的 ${OP_BUILD_TOOL} 调用 op_build,避免绕过前置工具路径选择逻辑。 - 在 gen_ophost_symbol 的 target_link_libraries 中补充 mmpa,解决部分场景下 libophost_cv 可能出现 undefined symbol: mmDladdr 的链接/运行问题。 通过显式依赖 target 和统一工具路径入口,减少构建链路对 include 路径、工具安装位置和隐式链接顺序的耦合,提升 CMake 配置的稳定性和可维护性。 ## 关联的Issue #467 ## 测试 常规测试 + 二进制对比。 已完成: 1. **静态检查** - 执行 git diff --check,检查通过。 2. **变更范围确认** - 确认 ops-cv 仓仅存在 ONNX plugin 构建入口,未发现 TF plugin 构建入口,因此本次只同步 ONNX plugin 侧整改。 - 确认根 CMake 已在 include cmake/func.cmake 前执行 add_cann_third_party(protobuf),ascend_protobuf_static 目标由公共 protobuf CMake 模块提供。 - 确认 OP_BUILD_TOOL 已由前置逻辑解析,opbuild_aicpu_ini 改为复用该变量后与其他 opbuild 调用入口保持一致。 3. **GitCode 检查** - API 检查已通过:api-check-pass。 - CI 流水线已通过:ci-pipeline-passed。 建议补充: 1. **ONNX plugin 构建验证** - 可执行 bash build.sh --onnxplugin。 - 检查 build/libop_cv_onnx_plugin.so 是否生成。 2. **AICPU opbuild 路径验证** - 可执行包含 AICPU 构建的常规编译流程,确认 op_build 能通过 ${OP_BUILD_TOOL} 正常调用。 ## 文档更新 不涉及文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!895 | 3 个月前 | |
feat(build): 支持 --pkg-type=deb/rpm 包构建 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1058 merge master_deb_rpm into master feat(build): 支持 --pkg-type=deb/rpm 包构建 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 为 ops-cv 增加 **deb / rpm** 包构建能力。原来的 bash build.sh --pkg 只能出 run 包(External generator),本次在 run 之外加 deb / rpm 两种格式,沿用 cann-cmake 公共仓的 set_cann_cpack_config(... PACKAGE_TYPE ...) 通道,不引入新的打包框架。 ### 改动清单 **CMakeLists.txt** - 新增 PACKAGE_TYPE 缓存选项,值域 run / rpm / deb,默认 run,透传给 cmake/package.cmake 的 set_cann_cpack_config **build.sh** - 新增 --pkg-type=run|rpm|deb 参数(默认 run),长选项白名单同步加 pkg-type= - 新增 check_pkg_type() 校验函数,在 getopts 阶段做值合法性校验 - check_param 阶段新增三条互斥约束: - --pkg-type 必须与 --pkg 配合 - --pkg-type=rpm|deb 不允许与 --static / --jit 共用 - --pkg-type=rpm|deb 不允许与 --ops / --vendor_name / --experimental 共用(只支持内置算子打包) - assemble_cmake_args 透传 -DPACKAGE_TYPE=${PACKAGE_TYPE} 给 cmake - 三个新函数: - find_rpm_deb_package — 共享的 find 实现,glob 收紧为 cann-ops-cv*.${TYPE},排除 .tmp / .bak / .partial 和 BUILD_OUT_PATH - clean_rpm_deb_package — 在 cmake --build . --target package 之前清理 BUILD_PATH 下残留的同类型旧包 - collect_rpm_deb_package — 构建成功后从 BUILD_PATH 拷贝到 BUILD_OUT_PATH,找不到包则 [ERROR] 退出 - cmake --build . --target package 失败立即 exit 1,避免后续 collect 误把旧产物当新构建结果拷贝 **cmake/package.cmake** - 透传 PACKAGE_TYPE 给 set_cann_cpack_config - 显式补齐 CANN_VERSION_ops-cv_VERSION 和 CANN_VERSION_ops-cv_VERSION_MAJOR_MINOR 两个变量: version.cmake 用下划线名 ops_cv 注册,set_cann_cpack_config 用连字符 component ops-cv;cann-cmake 公共仓 prepare.cmake 在拼装版本号时按 component 拼出的变量名是连字符的(CANN_VERSION_ops-cv_VERSION),直接读会拿到空,显式赋值避免 CPACK_PACKAGE_VERSION 退化为空、产物文件名变成 cann-ops-cv__Linux-x86_64.{deb,rpm} 这种缺版本号形态 **scripts/package/ops_cv/ops_cv.xml** - scene.info 安装权限 440 → 640 - share/info/ops_cv 目录权限 550 → 750 - version.info 显式 install_mod="440" - 目的:配合 deb / rpm 的 postinst 脚本在 share/info/ops_cv/ 目录下写 version.info,确保安装后该目录属主可写,version.info 自身只读 ### 触发方式 bash bash build.sh --pkg --pkg-type=deb --soc=ascend910b -j16 bash build.sh --pkg --pkg-type=rpm --soc=ascend910b -j16 bash build.sh --pkg # 默认 run,与原行为一致 ## 关联的Issue 无 ## 测试 - [x] --pkg 默认 run 包构建,产物路径和文件名与改前一致(回归) - [x] --pkg --pkg-type=deb 在 Ubuntu 22.04 容器内构建出 cann-ops-cv_<ver>_linux-x86_64.deb,dpkg-deb -I 校验 Package: cann-ops-cv、Version: 9.1.0 正常 - [x] --pkg --pkg-type=rpm 在 openEuler 22.03 容器内构建出 cann-ops-cv-<ver>-<arch>.rpm,rpm -qpi 校验 Package / Version 正常 - [x] 重复跑 --pkg --pkg-type=deb:clean_rpm_deb_package 正确清掉上次 .deb,collect_rpm_deb_package 拿到的是本次新产物 - [x] --pkg-type=deb 与 --static / --jit / --ops / --experimental 组合:check_param 按预期报 [ERROR] 退出 - [x] --pkg-type=invalid:预校验 + getopts 两阶段都按预期报 [ERROR] --pkg-type only supports run/rpm/deb - [x] cmake --build . --target package 故意制造失败(临时改坏 pack_built_in):脚本在 exit 1 处停下,不会把上次的旧 .deb 误拷出来 ## 文档更新 无(用户面向接口和命令行未变,只新增参数,help 文本和 examples 在 build.sh 内已更新) ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1058 | 2 个月前 | |
fix: compile with opbase source Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !384 merge master into master fix: compile with opbase source Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> compile with opbase source 1. 本仓下载opbase仓源码 2. 查找头文件,优先使用本地下载的路径 3. 不查找lib库,并移除lib库依赖 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-cv/issues/142 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-cv!384 | 6 个月前 | |
fix: cust模式下将仅有proto头文件无graph源码的算子编入libcust_opsproto_rt2.0.so Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !950 merge master into master fix: cust模式下将仅有proto头文件无graph源码的算子编入libcust_opsproto_rt2.0.so Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 ### 问题背景 在 cust(自定义算子)编译模式下,部分算子仅有 proto 头文件定义,但无 graph 源码(即不存在 ${OP_GRAPH_NAME}_obj target)。这类算子在编译 libcust_opsproto_rt2.0.so 时缺少 merge graph headers 和编译步骤,导致最终动态库中缺失对应算子的 proto 信息。 ### 修复方法 在 cmake/symbol.cmake 的 gen_cust_proto_symbol 函数中新增逻辑: 1. **检查 proto headers 是否存在**:通过 ${OP_GRAPH_NAME}_proto_headers target 的 INTERFACE_SOURCES 判断 2. **条件触发 merge**:当 proto headers 存在但无需 ES 链接(NEED_LINK_ES=OFF)时,调用 merge_graph_headers 合并 ops proto 文件 3. **纳入 cust_proto 编译**:将合并后的 ops_proto_cv.cpp 加入 cust_proto target,并添加 merge_ops_proto_${PKG_NAME}_cust 依赖 ### 改动说明 | 条件 | 行为 | |------|------| | 无 proto headers,无 graph 源码 | 不做任何 merge/编译 | | 有 proto headers,无 graph 源码 | merge graph headers,加入 cust_proto 编译(新增) | | 有 graph 源码(NEED_LINK_ES=ON) | 保持原有 ES 逻辑 | ## 测试 - [ ] 验证仅有 proto 头文件无 graph 源码的算子在 cust 模式下能正确编入 libcust_opsproto_rt2.0.so - [ ] 验证原有 graph 源码算子的 cust 编译路径未受影响 - [ ] 二级冒烟测试 ## 关联Issue 修复 #504 See merge request: cann/ops-cv!950 | 2 个月前 | |
refactor(cmake): 移除 gtest alias,统一使用 CMake imported target GTest::gtest Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !907 merge master into master refactor(cmake): 移除 gtest alias,统一使用 CMake imported target GTest::gtest Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 移除 CMake 中 legacy gtest/gtest_main alias,统一使用 add_cann_third_party(gtest) 提供的标准 CMake imported target GTest::gtest。 ### 变更原因 1. **消除冗余**: add_cann_third_party(gtest) 已直接提供 GTest::gtest 和 GTest::gtest_main imported targets,无需额外创建 alias 2. **符合规范**: 直接使用 CMake 官方推荐的 target 名称,提高可维护性 3. **减少耦合**: 移除手动 alias 逻辑,简化构建配置 ### 主要变更 1. **删除 alias 创建代码**: 移除 cmake/ut.cmake 和 tests/ut/CMakeLists.txt 中的 gtest/gtest_main alias 创建逻辑 2. **统一 target 引用**: 将所有 target_link_libraries 中的 gtest 替换为 GTest::gtest ### 影响范围 - cmake/ut.cmake (+11/-17) - tests/ut/CMakeLists.txt (+0/-6) - tests/ut/op_api/CMakeLists.txt (+1/-1) - tests/ut/op_api/op_api_ut_common/src/CMakeLists.txt (+1/-1) - tests/ut/op_host/CMakeLists.txt (+1/-1) - tests/ut/op_kernel/CMakeLists.txt (+1/-1) - tests/ut/op_kernel_aicpu/CMakeLists.txt (+1/-1) ## 关联的Issue #472 ## 测试 1. 验证 UT 构建正常: bash tests/build_ut.sh --ut=all 2. 验证 CI pipeline 通过 ## 文档更新 不涉及文档更新。 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!907 | 3 个月前 | |
rename onnx plugin Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !916 merge master into master rename onnx plugin Created-by: yanke-xu Commit-by: x00842564 Merged-by: cann-robot Description: ## 描述 onnx插件编译打包so命名按照新规则整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-cv/issues/485 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 静态检查、冒烟验证、编译验证、构建 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!916 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 |