| 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: 完成公共头文件迁移并修复关联验证问题 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6400 merge refactor/math-prefix-common-headers-1015 into master refactor: 完成公共头文件迁移并修复关联验证问题 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 完成 ops-math 剩余公共头文件引用迁移,清理会与其他算子仓同名的兼容转发头。迁移同时触发此前暂缓算子的构建和冒烟,因此一并修复已复现的 UT 状态污染、SDK 类型冲突及示例 executor 生命周期问题。 - 将 Sin 的引用改为 op_api/level2_base_math.h,将 experimental Atan2、Tile、Polar 的引用改为 op_api/op_api_def_math.h。 - 全仓审计确认 level2_base.h、level2_base_caculation.h、op_api_def.h 的引用均为 0,删除这三个兼容转发头;清理 classify_rule.yaml 中两条失效路径,保留现有 canonical 头文件分类。分类配置不作为包过滤规则。 - Sin、Atan2 的每个 UT 用例保存并恢复平台 stub 的原始 SoC 和架构覆盖字段,避免负向 BF16 用例污染后续测试;保留全部原有用例和预期。 - Tile 删除与新版 SDK 冲突的全局 complex64 = uint64_t 别名,在 kernel 入口为 complex64 输入局部选择 uint64_t,保持原有按 64 位原始数据复制的行为。 - Polar 的两个示例在重复调用前显式启用 executor 复用,结束后销毁 executor;检查同步和结果拷贝错误,将精度失败和用例失败传递为非零退出码。保留原有五组形状、warmup 次数、计时次数和精度阈值。 共 14 个文件,+192/-201。所改文件包含 pre-commit 要求的 clang-format 18.1.8 调整,其中 tile.h 的 171 行 diff 主要为格式变化;已与格式化后的基线逐项比较,该头文件的逻辑改动仅删除五行旧类型别名块。 ## 关联的Issue Issue [#3243](https://gitcode.com/cann/ops-math/issues/3243)。 ## 测试 验证环境:CANN 9.0.0,aarch64 / Ascend910B3。 - 全部 11 个修改的现有文件通过容器 pre-commit 和显式 OAT;git diff --check、旧头文件零引用审计通过。 - Sin:32/32 focused UT;sin/sub/tan/tanh_grad 组合正常顺序和随机顺序(seed 17)均 116/116 通过。未修复的干净基线可复现相同 5 个 BF16 失败。 - Atan2:21/21 focused UT;atan/atan2/cross 组合正常顺序和随机顺序(seed 17)均 51/51 通过。 - 当前完整 diff 经仓库 CI 生成器选择的以下命令全部通过: bash bash build.sh -u -j16 --experimental --ops=atan2,polar,tile --opapi --soc=ascend910b bash build.sh -u -j16 --experimental --ops=tile --opkernel --soc=ascend910b bash build.sh --pkg -j16 --experimental --vendor_name=experimental --ops=atan2,polar,tile - 上述 op_api UT 为 23/23(Atan2 21 个、Repeat 2 个;Polar 无 op_api UT);Tile kernel UT 为 3/3,三组比较均 max_diff=0.0。 - 三算子实验包构建及只读完整性校验 --check --noexec 通过。检查实际包内容:含公开 API 头、libcust_opapi.so、3 个 Atan2 / 1 个 Polar / 24 个 Tile kernel 对象,不含三个旧公共头。实际 Polar 对象依赖 canonical 头文件。 - Tile 在 NPU 1 上完成 float32 和三组 complex64 实机检查,输出逐位一致,覆盖负零、NaN、无穷及次正规数。 - Polar 两个示例各 5/5 实机用例通过,所有元素错误计数为 0;原始 REF 示例在相同自定义库下用 GDB 复现 malloc_consolidate(): unaligned fastbin chunk detected / SIGABRT。两个示例均按 CI 的 -lcust_opapi 方式链接,不将 REF 文件名视为系统库对照。 - 实机 Polar 验证副本仅将设备常量从 0 改为 1,以避开 NPU 0 已有进程数限制;仓内示例仍使用设备 0。验证后源码 SHA256 和容器 vendor 配置均未改变,使用包的 staging 目录,无需安装到 SDK。 验证边界:以上为 CANN 9.0.0 本地容器结果,CANN 9.3 双架构 CI 和 A2 PreSmoke 待线上验证。全量常规 --pkg 构建仍被未修改的 conversion/concat_d/op_graph/fusion_pass/concat_to_concatd_fusion_pass.cpp 与 CANN 9.0 GE SubgraphRewriter::Replace 参数不匹配阻塞;干净基线翻译单元使用相同参数可复现,三算子实验包已通过。 ## 文档更新 无仓内文档变更;变更范围、历史问题、验证结果及限制已汇总于本 MR 描述。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用迁移与兼容转发头清理 See merge request: cann/ops-math!6400 | 26 days ago | |
[LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Co-authored-by: gl_princekin<gelei10@huawei.com> # message auto-generated for no-merge-commit merge: !6684 merge master into master [LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Created-by: gl_princekin Commit-by: gl_princekin Merged-by: cann-robot Description: ## 描述 LeftShift(按位左移)算子此前仅包含 aclnn 接口(AICPU 实现),缺少 Ascend C 原生实现。本 PR 新增 LeftShift 的 Ascend C 实现,使其在 Ascend 950 及 Atlas A3 系列(arch35 架构)产品上获得原生执行路径。 **主要改动:** - op_kernel/arch35/:新增 Ascend C kernel(DAG 节点 + 数据结构定义) - op_host/arch35/:新增 tiling 代码 - op_host/config/ascend950/、op_host/config/ascend350/:算子配置(JSON + simplified_key.ini) - op_host/:left_shift_def.cpp(算子定义)、left_shift_infershape.cpp(shape 推导) - op_graph/:left_shift_proto.h、left_shift_graph_infer.cpp - op_kernel_aicpu/:AICPU kernel 实现 - op_api/:aclnn 接口参数校验代码更新 - examples/:图模式调用示例 test_geir_left_shift.cpp - tests/:单元测试(op_api / op_host / tiling / infershape / ST) - README.md、docs/:产品支持表、广播说明文档 - common/inc/op_graph/op_math_proto_extend.h:移除 LeftShift 注册(迁移至独立 proto 文件) - math/right_shift/framework/bitshift_onnx_plugin.cpp:修复 proto 头文件引用 ## 关联的Issue - #3978 ## 测试 - op_api 单元测试:test_aclnn_left_shift.cpp、test_aclnn_left_shift_l0.cpp、test_aclnn_left_shifts.cpp - op_host 单元测试:test_left_shift_tiling.cpp(arch35)、test_left_shift_infershape.cpp - op_kernel_aicpu 单元测试:test_left_shift.cpp - ST 测试:tests/st/arch35/ttk_kernel_left_shift_st.csv ## 文档更新 - 更新了 math/left_shift/README.md(产品支持表、功能说明、参数说明、约束说明、调用说明) - 更新了 math/left_shift/docs/aclnnLeftShift.md、aclnnLeftShifts.md(新增广播说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6684 | 15 days ago | |
hiF4Adapt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6414 merge hif4Adapt into master hiF4Adapt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓提供统一的 NPU 架构版本号与数据类型常量定义头文件,用于支撑 hiF4(HiFloat4)等新数据类型的适配。 具体改动: - 新增 common/inc/op_host/op_const_def_math.h:在 Ops::Math 命名空间下以 constexpr 形式集中定义 GE 数据类型常量(ge::DataType,如 DT_FLOAT~DT_HIFLOAT4_SCALE),涵盖 DT_HIFLOAT8、DT_FLOAT8_E5M2/E4M3FN/E8M0、DT_FLOAT6_E3M2/E2M3、DT_FLOAT4_E2M1/E1M2、DT_HIFLOAT4、DT_HIFLOAT4_SCALE 等新增低精度类型。不包含 NPU 架构(NpuArch)常量,与 ops-nn 的 op_const_def_nn.h 保持一致。 - 修改 cmake/symbol.cmake:在 gen_opgraph_symbol 中将该头文件安装到 ${OPGRAPH_INC_INSTALL_DIR},确保 op_graph 编译时可引用。 - 修改 scripts/package/module/ascend/OpsMathInc.xml:将 op_const_def_math.h 加入 opp/built-in/op_graph/inc 交付件清单。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认新增头文件可正常安装到 op_graph inc 目录,无编译错误。 - 交付件验证:确认 op_const_def_math.h 出现在 opp/built-in/op_graph/inc 交付清单中。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6414 | 25 days 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 |