| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: MatrixDiagPartV3/MatrixDiagV3 新增 RT2 infershape Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4600 merge feat/add-rt2-infershape-matrix-diag-v3 into master feat: MatrixDiagPartV3/MatrixDiagV3 新增 RT2 infershape Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 MatrixDiagPartV3 与 MatrixDiagV3 在 ops-math 中缺少 RT2 infershape(连 op_host/ 目录都不存在),canndev 源侧也只有 RT1(op_proto/matrix_calculation_ops.cc:1370 / :1940),op_proto/runtime 下无 RT2 实现。本 PR 按 RT1 → RT2 适配补齐。 **改动内容(6 个新增文件,无 CMake 改动)** | 文件 | 说明 | |---|---| | op_host/<op>_infershape.cpp | RT2 InferShape,含 .InputsDataDependency(PartV3 依赖 k;V3 依赖 k/num_rows/num_cols)与三条兜底分支 | | op_graph/<op>_graph_infer.cpp | 源侧 RT1 在 InferShape 里用 SetDataType 设了输出 dtype,按规范拆成独立 IMPL_OP(...).InferDataType(...) | | tests/ut/op_host/test_<op>_infershape.cpp | 共 32 条用例 | CMake 无需改动:cmake/func.cmake 自动 glob op_host/*_infershape*.cpp、op_graph/*.cpp,并把 tests/ut/op_host/ 挂到 math_op_infershape_ut_cases。 **两处有意偏离源侧(均已论证等价,请重点看这两处)** 1. 兜底 shape 用 Ops::Base::SetUnknownShape(1, y)。源侧写的是 Shape(ge::UNKNOWN_SHAPE),而 ge::UNKNOWN_SHAPE 是 {-1}(1 维长度未知)而非 unknown rank {-2},两者逐字对应;若写成 SetUnknownRank 会改变语义。 2. num_rows / num_cols / max_diag_len 全程用 int64_t。源侧用 int32_t 承载来自 int64_t shape dim 的值,存在窄化截断;改用 int64 对所有合法 shape 行为一致,且消除溢出路径。 ## 关联的Issue #2600 ## 测试 1. **infershape UT:32/32 PASS** bash build.sh -u --ophost --ops=matrix_diag_part_v3,matrix_diag_v3 [==========] 32 tests from 2 test suites ran. [ PASSED ] 32 tests. 覆盖:单对角线 / 多对角线(band)/ 带 batch / 非方阵 / 局部动态维;三条兜底分支(k 非常量、x unknown rank、k shape 非 fully defined)各一条;源侧每条 return FAILED 各一条。数据依赖的 const 真值路径由 faker 的 isConst_/constValue_ 真实覆盖。 2. **反向对照(证明用例非恒真断言)**:注入两处回归——去掉 IsRankInvalid/IsRankAboveLimit 的 unknown rank 容忍、兜底由 {-1} 改成 {-2}——后**精确 6 条动态 shape 用例失败**(两算子各 3 条),恢复后 32/32 通过。 3. **图模式 example 交叉核对**:现有 test_geir_matrix_diag_*.cpp 本就用 op::Const 喂 k/num_rows/num_cols,真机跑通,输出 [3] 与 [3,2],与本实现手工推算一致。 需说明的限定:该 example 走 ge::Session + graphRunMode=1 的 RT1 执行通路,日志显示整张图 6 个节点(含内置 Const/Data)**全部 Call InferShapeFuncV1、V2 计数为 0**,因此它不能直接证明 RT2 被调用。RT2 已被 GE 正确收下有独立证据:op_impl_registry.cc ... Op type[MatrixDiagV3] register OP_IMPL : [InferShape][InputsDependency]。 4. 基于最新 master(35f36a065)重跑上述 UT 与 clang-format 后复验,结果一致。 ## 文档更新 无。本 PR 只补 host 侧推导实现与 UT,不涉及算子对外接口与 README。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4600 | 10 天前 | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 14 天前 | |
style: 全仓统一 clang-format 代码格式化 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !3345 merge master into master style: 全仓统一 clang-format 代码格式化 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 对全仓代码(common、examples、tests 等目录共 113 个文件)统一执行 clang-format 格式化,使代码风格与 .clang-format 配置保持一致。本次变更不涉及任何功能逻辑修改,仅涉及缩进、对齐、空格、换行等代码风格调整。 涉及的主要目录: - common/inc/、common/src/:公共头文件及框架插件代码 - examples/:示例算子代码 - tests/:UT 测试框架及工具代码 ## 关联的Issue #1984 ## 测试 代码仅涉及格式化,不影响编译与功能;全量 UT 已通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化(clang-format) See merge request: cann/ops-math!3345 | 2 个月前 | |
refactor: 删除废弃公共头文件,完成 math/random 算子头文件去重 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !3000 merge math_tiling into master refactor: 删除废弃公共头文件,完成 math/random 算子头文件去重 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 删除 4 个已废弃的公共头文件,并完成剩余 math 算子和全部 random 算子的重复头文件消除。本 PR 为此系列重构的收尾提交。 ### 改动原因 前三批 PR(#2951 conversion / #2969 math上 / #2980 math下)已完成所有算子到 base 仓头文件的迁移。原公共头文件已成为空壳转发或不再被引用,可安全删除: - tiling_base.h:已改为转发 tiling_base_class.h,可直接删除 - tiling_templates_registry.h:math 专用部分已拆分到 math_tiling_templates_registry.h - tiling_util.h / tiling_util.cpp:功能已迁移至 base 仓 tiling_base_util.h 此前几批遗漏了部分 math 算子(add_lora, atan2, histogram_v2, stft 等 10+ 个)以及 random 目录下全部算子。 ### 改动方法 1. 删除 4 个废弃文件并精简 common/CMakeLists.txt 2. 更新遗漏的 math 算子:#include + 命名空间修正 3. 更新 20+ 个 random 算子:同样的 #include + 命名空间修正 4. 更新示例(add_example, add_example_c_api)和 opgen 模板脚本 ## 关联的Issue - #1697 ## 测试 - 涉及的算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,删除废弃头文件并完成去重收尾 See merge request: cann/ops-math!3000 | 3 个月前 |