| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9618 merge fix-onnx-0831 into master fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本 MR 含两部分: 1. 将 common/src/framework/ada_cast_onnx_plugin.cpp 的 ParseParamsFn 迁移到 ParseParamsByOperatorFn,从 op_src 的 attribute JSON 解析 pixel(INT),去掉 protobuf 依赖(onnx_common.h → plugin_util.h 等 proto-free 头),并补 common/tests/ut/framework/test_ada_cast_onnx_plugin.cpp 单测。 2. 补齐 ops-nn "framework UT 按算子 + op_host "中 common 集中 目录这一支的失效:改 common/.../framework 下 onnx 文件时 CI 静默跳过 (parse_changed_files.py 无 framework matcher、tests/ut/op_host 的 if(NOT ASCEND_OP_NAME) 在 --ops 下把 common framework UT 挡死)。 ## 实现说明 - scripts/util/parse_changed_files.py(改动1) 基类 match() 加 framework 短路 + OpHostUt._ut_match 正则提取算子名 ((?:^|/) 兼容相对路径),覆盖四种 onnx framework 路径:common 插件源、 common 插件 UT、算子级 UT、算子级插件源。非 framework 文件走原逻辑不变; 仅 op_host_ut 命中。顶部加 import re。 - tests/ut/op_host/CMakeLists.txt(改动2) 门槛 if(NOT ASCEND_OP_NAME) → 全量接入;--ops 仅命中 common 框架插件算子 才接入。结构上规避 ops-cv !1435 那种"非框架算子 PR 触发 framework cases_obj 零源"回归。framework static_lib 链接处本就有 $<TARGET_EXISTS:> 守卫, 非框架算子构建时链接为空,不影响他人。 - cmake/ut.cmake(改动3/5) 改动3:framework 分支按 test_<op>_onnx_plugin.cpp 文件名逐文件过滤。 改动5:add_opbase_ut_common(tiling/infershape/framework 三模块共享) 加 empty.cpp 兜底源——selective 下三个 opbase obj 目标都不存在时 add_library 无源会在 generate 阶段报错。 - scripts/util/dependency_parser.py(改动4) find_all_dependency 对不在依赖图的 framework-only 算子(ada_cast/hardmax/ size 无算子目录)由 raise RuntimeError 改为 warn+计入算子本身(无子依赖)。 否则 parse 与 build.sh --ops 依赖解析会崩、且 parse 输出 op 字段为空。 真实算子(在 all_ops)不受影响。 ## 关联的Issue Issue [#5115](https://gitcode.com/cann/ops-nn/issues/5115) ## 测试 容器(CANN 9.0.0,aarch64)端到端 CI -f 验证: - ada_cast(common 插件源)CI -f:Trigger Ut op_host_ut:ada_cast → OnnxAdaCastPluginTest 2 用例 PASSED,rc=0。 - elu(算子级插件源 activation/elu/framework/elu_onnx_plugin.cpp,扩展正则 新增覆盖)CI -f:Trigger Ut op_host_ut:elu → OnnxEluPluginTest 2 用例 PASSED,rc=0。 - relu(非框架算子、不涉及 onnx,回归)CI -f:门槛不命中 common framework, 无 No SOURCES 报错,7 用例 PASSED,rc=0(即不涉及 onnx 的 PR 不受影响)。 - ada_cast 迁移本身:protobuf-free 编译通过,硬标准 onnx_common.h/ge::onnx::/Message 零残留。 本地 git diff --check 通过;py_compile 通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9618 | 6 天前 | |
kernel ut 增加防卡死超时,快速模式,覆盖率控制 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8187 merge master into master kernel ut 增加防卡死超时,快速模式,覆盖率控制 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 提交总结:kernel ut 增加防卡死超时、快速模式、覆盖率控制 **修改背景**:Kernel UT 存在单测卡死导致整套测试挂起、运行慢(addr2line 符号化耗时)、gcov 覆盖率始终链接带来不必要开销等问题。 **修改方案**: 1. **防卡死超时**:新增 run_kernel_ut.sh,按 case 逐个执行并用 timeout 限时(默认 120s,--ut_timeout 可配),超时即标记失败并继续,避免单点卡死阻塞全流程。 2. **快速模式**:新增 --ut_mode=fast/debug。fast 模式关闭符号化(注入 fake addr2line 跳过慢解析)、改用 -g0 -O2,用于快速验证;debug 模式保留 -g 与符号化,用于开发调试。 3. **覆盖率控制**:将 ut.cmake 中 gcov 的无条件链接改为 $<$<BOOL:${ENABLE_COVERAGE}>:gcov> 条件链接,仅在开启覆盖率时引入; 4. **修复失败的kernel ut**:TensorFlow 依赖替换为md_dtypes, 修复部分block 越界,缺少SetKernelMode 设置导致核获取错误等问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4606 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 通过kernel ut 测试,bash build.sh -u --opkernel --ut_mode=fast --ut_timeout=60 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8187 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 天前 | ||
| 1 个月前 |