| Files | Last commit | Last update |
|---|---|---|
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 | 4 months ago | |
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 | 4 months ago | |
[cleancode] 提升 math_onnx_plugin_util 类型安全性 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5630 merge cleancode-0912 into master [cleancode] 提升 math_onnx_plugin_util 类型安全性 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 提升 common/inc/framework/math_onnx_plugin_util.h 中 ONNX 工具代码的类型安全性。 ## 改动内容 1. 移除 Vec2Tensor 和 CreateScalar 中的 reinterpret_cast,改用 static_cast<const uint8_t*>(static_cast<const void*>(...))。 2. 将普通枚举 DataTypeOnnx 改为枚举类 enum class DataTypeOnnx,同步调整映射表的键类型及枚举值访问方式。 本 MR 仅修改 common/inc/framework/math_onnx_plugin_util.h。 ## 验证 在 CANN 9.0.0 容器中执行: bash bash build.sh --onnxplugin -j16 oponnx_plugin_math 编译通过。 See merge request: cann/ops-math!5630 | 1 month ago | |
refactor: 继续迁移非 experimental 公共头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge refactor/math-prefix-common-headers-1008 into master refactor: 继续迁移非 experimental 公共头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 继续将 ops-math 的公共 op_api 头文件引用迁移到带 _math 后缀的名称,减少多个算子仓库集成时同名头文件误引用的风险。 本次更新 35 个非 experimental 文件中的 35 处引用: - level2_base.h → level2_base_math.h:11 处。 - level2_base_caculation.h → level2_base_caculation_math.h:1 处。 - op_api_def.h → op_api_def_math.h:23 处。 对涉及文件同步执行仓库 clang-format、尾部空白及 EOF 规范化。此次共 35 个文件,新增 2506 行、删除 2419 行;除头文件引用替换外,其余为格式调整。 sin 因此前发现的 UT 全局平台状态污染继续暂缓;experimental 文件继续分批处理。现有兼容转发头保留。 ## 关联的Issue 延续公共头文件重名问题的分阶段迁移:https://gitcode.com/cann/ops-math/issues/3243 ## 测试 在服务器 192.168.9.234 的 lcl_ops_9.0 容器(CANN 9.0.0 / aarch64)中,以基线 16700ac8d829f8e66180c612f45ed4384b51e2e0 创建独立工作区验证。35 个修改文件的 SHA256 与本地逐一一致。 - git diff --check:通过。 - pre-commit:所有 hook 通过;另显式扫描全部 35 文件的 OAT 检查通过。 - bash build.sh --opapi -j16:全量编译通过,生成 libopapi_math.so。 - 仓库 CI 脚本为涉及的 30 个算子生成 op_api 单测命令,指定 ascend910b 执行:605 个用例全部通过。 - 额外执行 fill_diagonal_v2,flatten,slogdet,svd 的 op_host 验证:容器中 libophost_math_ut.so 加载时缺少 ops::OpAICoreDef::AddConfig(const char*, ops::OpAICoreConfig&) 符号,导致注册失败及 FillDiagonalV2 InferShape 单测段错误。去掉全部 35 文件修改后的干净基线使用相同命令复现相同失败;该失败独立于本次头文件引用替换,op_host 验证尚未通过。 ## 文档更新 不涉及用户文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用重构及格式规范化。 See merge request: cann/ops-math!6220 | 27 days ago | |
feat: ConfusionMatrix 算子下一代实现 Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !5444 merge feat/confusion-matrix into master feat: ConfusionMatrix 算子下一代实现 Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 新增 ConfusionMatrix 算子 Ascend950(arch35)实现。 - **功能**:对每个索引 i,将 weights[i](缺省为 1)累加到输出矩阵 y[labels[i], predictions[i]],输出 num_classes×num_classes 混淆矩阵,兼容 TF tf.math.confusion_matrix。 - **kernel 侧**:SIMT 范式(参照 bincount 骨架),2D scatter-add;按输出矩阵与 UB 容量关系分四种调度策略(full_load / batch_load / not_full_load / determine),determine 模式按输出行切核保证确定性,int8/uint8 输出固定走 determine(窄整型不走原子加)。 - **host 侧**:arch35 tiling(策略选择 + 结构化宏校验 shape/dtype/num_classes);op_graph 双挂 InferShape + InferDataType(输出 dtype 由属性 dtype 字符串白名单映射)。 - **dtype 组合**:labels/predictions(dtype 相同)× weights/output(dtype 相同)共 25 种组合,输出 dtype 由属性 dtype 决定;1 ≤ num_classes ≤ 4096。 - **原型去重**:common/inc/op_graph/op_math_proto_extend.h 中移除 ConfusionMatrix 的 REG_OP 声明——本算子目录 op_graph/confusion_matrix_proto.h 已提供带 OPS_PROTO_DEF_CONFUSIONMATRIX 去重宏保护的版本,避免同 TU 重复注册。 - **tf-plugin**:由 common/src/framework/confusion_matrix_tf_plugin.cpp 统一提供(#5653 已合入),本 PR 不重复交付。 ## 关联的Issue [#3211](https://gitcode.com/cann/ops-math/issues/3211) ## 测试 - 泛化:kernel 模式 1000 例(25 dtype 组合 × num_classes 1~4096 探顶 × N 0~100000 × 4 调度分支),REAL_FAIL=0(995 PASS + 5 例 fp16 深累加顺序舍入差异,与 built-in TBE 同数值行为)。 - 通路:GEIR 55 例全连通,浮点输出 23/23 三方比对(NPU / CPU golden / GPU)PASS;tf 通路经 pb 解析验证。 - 精度:三方 12/12 PASS(含 int8/uint8 饱和回绕、inf/nan 传播,NPU-GPU bitwise 一致)。 - 性能:150 例对标 A100(torch scatter_add 拼接基准),NPU 中位快约 2.6×,按 shape 分布如实呈现。 - UT:tiling(arch35)+ infershape 单测随包;ST:tests/st/arch35/ttk_kernel_confusion_matrix_st.csv。 ## 文档更新 - 新增 math/confusion_matrix/README.md(产品支持情况/功能说明/参数说明/约束说明/调用说明)。 - docs/zh/op_list.md 登记 confusion_matrix 条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5444 | 1 month ago | |
fix: reduce infershape2.0 可选属性未设置时GE GetAttrPointer报错修改 Co-authored-by: Sunee<sunyi35@huawei.com> # message auto-generated for no-merge-commit merge: !5937 merge fix/infer2.0 into master fix: reduce infershape2.0 可选属性未设置时GE GetAttrPointer报错修改 Created-by: Sunee Commit-by: Sunee Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> reduce infershape2.0 可选属性未设置时GE GetAttrPointer报错修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3297 DTS2026092235068 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5937 | 1 month ago | |
build: 将 op_graph 目录下所有 cpp 编入 libopsgraph_math.so Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4484 merge master into master build: 将 op_graph 目录下所有 cpp 编入 libopsgraph_math.so Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 将 op_graph 目录下所有 cpp 文件递归编入 libopsgraph_math.so。原 cmake 配置仅编译匹配 *_graph_*.cpp、*_fallback.cpp、fusion_pass/*_pass.cpp 的文件,新增 op_graph 文件需手动调整 glob 模式;改为 GLOB_RECURSE 递归收集 op_graph 目录下所有 .cpp,后续新增文件自动纳入编译。 具体改动(cmake/func.cmake 两处): - add_all_modules_sources:file(GLOB ...) 改为 file(GLOB_RECURSE OP_GRAPH_SRCS ${SOURCE_DIR}/op_graph/*.cpp) - add_graph_plugin_sources:file(GLOB ...) 改为 file(GLOB_RECURSE OP_GRAPH_SRCS ${SOURCE_DIR}/*.cpp) ## 关联的Issue - #2540: 将 op_graph 目录下所有 cpp 自动编入 libopsgraph_math.so ## 测试 - 本地编译 ops-math,验证 libopsgraph_math.so 正常生成,op_graph 目录下新增 cpp 文件的符号被纳入。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建系统优化 See merge request: cann/ops-math!4484 | 3 months ago |