| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
update: dlog头文件路径变更,更新文件 Finddlog.cmake Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4796 merge master into master update: dlog头文件路径变更,更新文件 Finddlog.cmake Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更适配 dlog 头文件目录调整,更新 cmake/modules/Finddlog.cmake 中 DLOG_HEAD_SEARCH_PATHS 的 CI 编译搜索路径: - 将 ${TOP_DIR}/abl/slog/inc/toolchain 替换为 ${TOP_DIR}/runtime/pkg_inc/base。 - 保留现有 Ascend 安装目录下的 toolchain/pkg_inc/base 查找路径,确保 dlog 头文件可从新的 runtime 包结构中定位。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已验证构建出包正常,确认更新后的 dlog 头文件搜索路径可满足编译查找。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无需文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建配置适配 See merge request: cann/ops-math!4796 | 19 天前 | |
修改tilingkey引用文件 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !4773 merge modifyreducetilingkey into master 修改tilingkey引用文件 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> reduce模板tilingkey修改,math仓对应调整,reducesum、reducemean支持非连续和batch一致性,tilingkey使用full。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4773 | 6 天前 | |
update license Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !417 merge master into master update license Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!417 | 8 个月前 | |
feat: 编译时SOC版本支持前缀模糊匹配,新增-Wno-error=deprecated-declarations选项 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !4176 merge master into master feat: 编译时SOC版本支持前缀模糊匹配,新增-Wno-error=deprecated-declarations选项 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 优化编译构建流程,支持 SOC 版本前缀模糊匹配并放宽废弃声明警告处理。 ### 改动内容 **build.sh — SOC 版本模糊匹配** - 精确匹配失败时,启用前缀模糊匹配(双向前缀比较) - 多个候选时选取最长前缀匹配项 - 仅在无任何前缀匹配时才报错退出 **cmake/dependencies.cmake — 编译选项** - 新增 -Wno-error=deprecated-declarations,将废弃声明警告降级为非错误 ## 测试 - 非精确 SOC 版本名编译验证 - 无匹配 SOC 版本时正确报错 ## 类型标签 - [x] 新特性 - [x] 构建/CI ## 关联的Issue - #2279 See merge request: cann/ops-math!4176 | 1 个月前 | |
chore: 升级 cann-cmake 至 master-049 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4595 merge master into master chore: 升级 cann-cmake 至 master-049 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4595 | 24 天前 | |
feat(onnx): 迁移 ReverseSequence 插件至 ParseParamsByOperatorFn 并补单测 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5201 merge fix-onnx-0828 into master feat(onnx): 迁移 ReverseSequence 插件至 ParseParamsByOperatorFn 并补单测 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将 ReverseSequence ONNX 插件与 protobuf 解耦(ParseParamsFn → ParseParamsByOperatorFn),补单测;并修复 common 集中目录下 onnx 插件改动时框架 UT 在 CI 跑不到的问题,使本 MR 新增的 onnx UT 能被 CI 真正编译执行。 **主要改动:** - 插件解耦 + 新增 test_reverse_sequence_onnx_plugin.cpp(8 用例)。 - 抽出 protobuf-free 公共头 math_onnx_plugin_util.h(GetOpName),消除 onnx_common.h 与插件间的重复定义。 - 拆分 ParseParamsReverseSequence,方法嵌套深度 7→4(满足 CodeCheck ≤5)。 - 插件文件改 snake_case reverse_sequence_onnx_plugin.cpp(与测试文件名一致,便于按文件名匹配)。 - 打通 common onnx 框架 UT 的 CI 链路(见下)。 <details><summary>CI/cmake 框架 UT 使能细节</summary> 此前 common 下 onnx 改动,CI 的 gen_ci_cmd.py 不识别(回退默认 is_finite),cmake --ops 模式又把 framework 用例库 stub 成 empty.cpp,导致改了不测。改动: - scripts/ci/gen_ci_cmd.py:识别 common/(src/framework|tests/ut/framework)/(test_)?<op>_onnx_plugin.cpp,按文件名提算子名生成 --ops=<op> --ophost;无 op_host 路径的框架算子回退 ophost。 - cmake/func.cmake(check_compiled_ops):扫 common/src/framework/*_onnx_plugin.cpp 注入 COMPILED_OPS,避免 --ops=<common 插件> 时空 FATAL。 - tests/ut/op_host/CMakeLists.txt:门槛从"--ops 非空跳过"改为"全量接入;--ops 命中 common 框架插件才接入"。 - cmake/ut.cmake:framework 分支按 test_<op>_onnx_plugin.cpp 文件名过滤(不再按路径推 OP_NAME=common)。 </details> ## 关联的Issue Issue #2892 ## 测试 本地容器(CANN 9.0.0)矩阵全过:--ops=reverse_sequence 仅编入对应用例、8 PASSED、无 FATAL;--ops=is_finite 无回归;-f pr_filelist 端到端 gen_ci_cmd→--ops=reverse_sequence --ophost→8 PASSED。CI 实证 CodeCheck(OpenLibing)已转绿、precommit clang-format/EOF/codespell/OAT 通过、gen_ci_cmd.py 已对齐 ruff-format。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5201 | 5 天前 | |
fix(build): 跳过仅有信息库无 op_kernel 的算子的 kernel 编译 Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !4900 merge fix-skip-kernel-for-defonly-op into master fix(build): 跳过仅有信息库无 op_kernel 的算子的 kernel 编译 Created-by: songkai111 Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 --pkg 出包模式下编译仅定义算子信息库、没有 kernel 实现的算子(如 bitcast)时,kernel 编译链路会报错。本次修改在 kernel 二进制编译阶段跳过这类算子,并补充缺失的算子信息格式支持: ### 改动原因 - cmake/gen_ops_info.cmake 按 SoC 编译算子的循环中,对不存在 op_kernel 目录的算子执行 find ${OP_DIR}/op_kernel 会报"目录不存在"。 - scripts/util/parse_ini_to_json.py 的 FORMAT_LIST 缺少 FRACTAL_NZ_C0_8(CANN 原生支持的 ACL_FORMAT_FRACTAL_NZ_C0_8),使用该格式的算子 ops-info 校验不通过。 - scripts/kernel/binary_script/gen_opcinfo_from_opinfo.py 对 opFile.value=Null(仅有信息库、无 kernel 实现)的算子会残留 dynamic/Null.py 条目导致编译失败。 ### 改动方法 1. **cmake/gen_ops_info.cmake**:按 SoC 编译算子的循环中,对不存在 op_kernel 目录的算子直接 continue 跳过 kernel 二进制编译,与 get_op_type_and_validate 中已有的 op_kernel 目录判断保持一致,避免 find ${OP_DIR}/op_kernel 报目录不存在,并与 cann/ops-nn 仓的既有行为对齐。 2. **scripts/util/parse_ini_to_json.py**:FORMAT_LIST 补充 FRACTAL_NZ_C0_8;同时按 ruff 格式重排文件(修复 pre-commit trailing-whitespace/ruff)。 3. **scripts/kernel/binary_script/gen_opcinfo_from_opinfo.py**:opFile.value=Null/None 表示算子无 kernel 实现,不再写入 kernel 编译 csv,避免残留 dynamic/Null.py 条目;同时按 ruff 格式重排(修复 pre-commit ruff)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/2785 ## 测试 本机 CANN 9.1.0 验证: text # 仅 bitcast(无 op_kernel)→ 构建成功,包内 ops-info 正常注册 Bitcast,无 kernel 二进制 $ bash build.sh --pkg --ops=bitcast --soc=ascend950 -j16 构建成功 # bitcast + abs 混合 → 构建成功,abs kernel 二进制正常生成,混合编译不受影响 $ bash build.sh --pkg --ops=bitcast,abs --soc=ascend950 -j16 构建成功 # pre-commit 全量 hook 通过 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4900 | 14 天前 | |
工程能力升级,增加aicpu算子genop、二进制多并发编译能力 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !779 merge master into master 工程能力升级,增加aicpu算子genop、二进制多并发编译能力 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!779 | 7 个月前 | |
update license Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !417 merge master into master update license Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!417 | 8 个月前 | |
feat: 提取公共头文件 math_def_util.h Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !4869 merge ft-def-util into master feat: 提取公共头文件 math_def_util.h Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> feat: 提取公共头文件 math_def_util.h op_def 使用的公共工具,提供多输入 data type 两两组合的编译期常量生成方法 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2748 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4869 | 16 天前 | |
feat: 支持 deb/rpm 包构建 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4178 merge master into master feat: 支持 deb/rpm 包构建 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 为 ops-math 构建系统新增 deb/rpm 包构建能力,支持通过 --pkg-type 参数选择构建 run / rpm / deb / all 四种包类型。 ### 改动原因 当前 ops-math 仅支持生成 .run 自解压安装包,无法满足 Linux 发行版原生包管理的需求。 ### 改动方法 1. CMake 层面:新增 PACKAGE_TYPE 缓存变量(run/rpm/deb/all),升级 cann-cmake 依赖到 master-045 2. 构建脚本:build.sh 新增 --pkg-type=<TYPE> 参数,build_lib.sh 实现 rpm/deb 构建/清理/收集逻辑 3. CI 重新打包:ops_run_repackage.sh 支持 --pkg-type,在生成 .run 包后调用 ops_generate_rpm_deb.sh 4. 包管理钩子:新增 custom_postinst.sh 和 custom_prerm.sh 用于安装后/卸载前的 pip wheel 管理 5. 包配置更新:ops_math.xml 移除 EngineeringFiles,调整目录权限,添加版权头 ## 关联的Issue - #2460 ## 测试 - 本地验证 --pkg-type 参数校验逻辑 - CI 流水线已通过 ## 文档更新 - 更新 docs/zh/install/compile.md 中 cann-cmake 版本信息 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 See merge request: cann/ops-math!4178 | 1 个月前 | |
sync(static): 静态库编译优化——添加 target 存在性检查,新增多包合并脚本 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4355 merge master into master sync(static): 静态库编译优化——添加 target 存在性检查,新增多包合并脚本 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 静态库编译流程优化,添加 target 存在性检查避免构建失败,并新增多包合并 CI 脚本。 ### 改动原因 1. 静态库构建时部分 target(ophost_math_static / opapi_math_static / cann_math_static)并非在所有编译场景下都存在,无条件构建会导致失败 2. CI 中需要将多个算子仓独立编译的静态库包合并为一个统一交付包 ### 改动方法 1. cmake/static.cmake: 增加 if (TARGET ...) 守卫,仅在相关 target 存在时才执行静态库打包 2. scripts/build_lib.sh: 获取 all_targets 后用 grep -wq 检查 target 是否存在再执行构建,static_files_dir 不存在时优雅跳过 3. scripts/ci/merge_static_packages.sh: 新增 CI 脚本,多个包解压后合并 .o 和头文件,重新打包 ## 关联的Issue - #2461 ## 测试 - CI 流水线验证通过 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 See merge request: cann/ops-math!4355 | 1 个月前 | |
feat: 为ONNX/TF插件so增加-Bsymbolic链接选项并移除废弃头文件 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4218 merge master into master feat: 为ONNX/TF插件so增加-Bsymbolic链接选项并移除废弃头文件 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 1. 参考OPGRAPH_NAME已有的编译选项,为ONNX_PLUGIN_NAME和TF_PLUGIN_NAME对应的so增加-Wl,-Bsymbolic链接选项,确保符号解析行为一致。 2. 删除common/inc/op_api/infershape_reduce_util.h,该头文件已被opbase仓中版本替代,math仓内已无代码引用。 ## 关联的Issue - #2310 ## 测试 已验证 bash build.sh --pkg --jit -j32 编译通过,readelf确认三个so均带有SYMBOLIC标志。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建优化及代码清理 See merge request: cann/ops-math!4218 | 1 个月前 | |
TORCH EXTENSION算子工程 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !277 merge master into master TORCH EXTENSION算子工程 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> TORCH EXTENSION算子工程 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!277 | 9 个月前 | |
feat(onnx): 迁移 ReverseSequence 插件至 ParseParamsByOperatorFn 并补单测 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5201 merge fix-onnx-0828 into master feat(onnx): 迁移 ReverseSequence 插件至 ParseParamsByOperatorFn 并补单测 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将 ReverseSequence ONNX 插件与 protobuf 解耦(ParseParamsFn → ParseParamsByOperatorFn),补单测;并修复 common 集中目录下 onnx 插件改动时框架 UT 在 CI 跑不到的问题,使本 MR 新增的 onnx UT 能被 CI 真正编译执行。 **主要改动:** - 插件解耦 + 新增 test_reverse_sequence_onnx_plugin.cpp(8 用例)。 - 抽出 protobuf-free 公共头 math_onnx_plugin_util.h(GetOpName),消除 onnx_common.h 与插件间的重复定义。 - 拆分 ParseParamsReverseSequence,方法嵌套深度 7→4(满足 CodeCheck ≤5)。 - 插件文件改 snake_case reverse_sequence_onnx_plugin.cpp(与测试文件名一致,便于按文件名匹配)。 - 打通 common onnx 框架 UT 的 CI 链路(见下)。 <details><summary>CI/cmake 框架 UT 使能细节</summary> 此前 common 下 onnx 改动,CI 的 gen_ci_cmd.py 不识别(回退默认 is_finite),cmake --ops 模式又把 framework 用例库 stub 成 empty.cpp,导致改了不测。改动: - scripts/ci/gen_ci_cmd.py:识别 common/(src/framework|tests/ut/framework)/(test_)?<op>_onnx_plugin.cpp,按文件名提算子名生成 --ops=<op> --ophost;无 op_host 路径的框架算子回退 ophost。 - cmake/func.cmake(check_compiled_ops):扫 common/src/framework/*_onnx_plugin.cpp 注入 COMPILED_OPS,避免 --ops=<common 插件> 时空 FATAL。 - tests/ut/op_host/CMakeLists.txt:门槛从"--ops 非空跳过"改为"全量接入;--ops 命中 common 框架插件才接入"。 - cmake/ut.cmake:framework 分支按 test_<op>_onnx_plugin.cpp 文件名过滤(不再按路径推 OP_NAME=common)。 </details> ## 关联的Issue Issue #2892 ## 测试 本地容器(CANN 9.0.0)矩阵全过:--ops=reverse_sequence 仅编入对应用例、8 PASSED、无 FATAL;--ops=is_finite 无回归;-f pr_filelist 端到端 gen_ci_cmd→--ops=reverse_sequence --ophost→8 PASSED。CI 实证 CodeCheck(OpenLibing)已转绿、precommit clang-format/EOF/codespell/OAT 通过、gen_ci_cmd.py 已对齐 ruff-format。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5201 | 5 天前 | |
feat: 支持 kernel_src 机制,允许算子通过 CMake 指定自定义 kernel 入口文件 Co-authored-by: songkai111<songkai111@noreply.gitcode.com> # message auto-generated for no-merge-commit merge: !3141 merge revert-mr-3138-1780580007491-auto into master feat: 支持 kernel_src 机制,允许算子通过 CMake 指定自定义 kernel 入口文件 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 支持 kernel_src 机制,允许算子通过 CMake 的 add_kernel_sources() 函数指定自定义 kernel 入口文件,而非默认使用算子名.cpp。同步自 ops-nn PR#3936 的 cmake/scripts 改动。 ### 改动内容 **CMake 构建系统(4个文件)**: - cmake/func.cmake:add_kernel_sources() 函数新增 KERNEL_SRC 单值参数,支持指定算子入口文件名(不含.cpp后缀),缺省使用算子名;将 KERNEL_SRC 信息收集到 KERNEL_SRC_LIST 缓存变量中 - cmake/opbuild.cmake:在 gen_aclnn_with_opdef() 构建目标中新增构建后调用 insert_kernel_src.py 脚本的步骤,分别处理 ASCEND_AUTOGEN_PATH、inner、exc 三个目录下的 ini 文件 - cmake/ut.cmake:AddOpsTestCase() 中根据 KERNEL_SRC_LIST 查找自定义 kernel 入口文件对应的源文件路径 - cmake/variables.cmake:新增 KERNEL_SRC_LIST 缓存变量,用于存储 kernel 源文件信息 **Python 脚本(4个文件)**: - scripts/util/insert_kernel_src.py:新增脚本,解析 KERNEL_SRC_LIST 并在 aic-{compute_unit}-ops-info.ini 文件中插入或更新 kernelSrc.value 字段 - scripts/util/opdesc_parser.py:OpDesc 类新增 kernel_src 属性和 parse_kernel_src() 方法,解析 ini 文件中的 kernelSrc.value 配置 - scripts/util/ascendc_impl_build.py:在 write_adapt() 和 write_impl() 中使用 kernel_src 替代 op_file 作为源文件名,未指定时回退到 op_file - scripts/util/parse_ini_to_json.py:解析 ini 时跳过 kernelSrc 键,避免写入 JSON - scripts/kernel/binary_script/gen_ops_compile_ini.py:参数校验从 5 个调整为 6 个,适配新增参数 **算子示例(2个文件)**: - math/add/op_kernel/CMakeLists.txt:为 add 算子的 ascend950 和 mc62 两个 COMPUTE_UNITS 配置 KERNEL_SRC 为 arch35/add.cpp - math/add/op_kernel/add_apt.cpp → math/add/op_kernel/arch35/add.cpp:将 add_apt.cpp 重命名为 arch35/add.cpp,更新文件内引用路径(arch35/add_dag.h → add_dag.h,arch35/add_struct.h → add_struct.h) ## 关联的Issue - #1859 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3141 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 19 天前 | ||
| 6 天前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 24 天前 | ||
| 5 天前 | ||
| 14 天前 | ||
| 7 个月前 | ||
| 8 个月前 | ||
| 16 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 9 个月前 | ||
| 5 天前 | ||
| 3 个月前 |