| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !2951 merge feature/conversion-dedup into master refactor: 拆分 tiling 公共头文件,消除 conversion 算子重复依赖 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 tiling 基类和模板注册相关定义从 conversion 算子的公共头文件中拆分,消除各 conversion 算子的重复头文件依赖。 ### 改动原因 conversion 目录下 50+ 个算子各自直接引用 tiling_base.h、tiling_util.h 和 tiling_templates_registry.h: - tiling_base.h 包含完整 TilingBaseClass 实现(~240行),每个算子编译时都重复展开 - tiling_templates_registry.h 内混杂 math 算子的模板注册代码,不应被 conversion 算子依赖 ### 改动方法 1. 新建 common/inc/op_host/math_tiling_templates_registry.h:将 math 算子专用的模板注册宏和注册类从此文件中提供 2. 精简 tiling_base.h:改为仅转发引用 tiling_base_class.h 3. 批量更新 conversion 算子文件的 #include: - tiling_base.h → tiling_base_class.h - tiling_util.h → tiling_base_util.h - tiling_templates_registry.h → math_tiling_templates_registry.h 4. 批量更新命名空间引用: - Ops::Math::OpTiling::TilingBaseClass → Ops::Base::TilingBaseClass - Ops::Math::OpTiling::EnsureNotScalar → Ops::Base::EnsureNotScalar ## 关联的Issue - #1672 ## 测试 - 涉及的 conversion 算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,消除重复头文件依赖 See merge request: cann/ops-math!2951 | 3 个月前 | |
reducesum新增batch一致性 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !3442 merge reducesum_batchinvariant into master reducesum新增batch一致性 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> reducesum实现batch一致性,单算子侧进行对应适配,主要是获取batch一致性开关以及使用新的模板key ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3442 | 2 个月前 | |
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 个月前 | |
工程能力升级,增加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 个月前 | |
adapt cmake hash Co-authored-by: gcw_UQE6G7Ro<zhoudaijin@huawei.com> # message auto-generated for no-merge-commit merge: !2910 merge master into master adapt cmake hash Created-by: gcw_UQE6G7Ro Commit-by: gcw_UQE6G7Ro Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2910 | 3 个月前 | |
perf: 合并 op_kernel 的 CMakeList 到算子根目录 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !3446 merge ft-cmake into master perf: 合并 op_kernel 的 CMakeList 到算子根目录 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> perf: 合并 op_kernel 的 CMakeList 到算子根目录 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2064 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:编译工程优化 See merge request: cann/ops-math!3446 | 2 个月前 | |
perf: 合并 op_kernel 的 CMakeList 到算子根目录 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !3446 merge ft-cmake into master perf: 合并 op_kernel 的 CMakeList 到算子根目录 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> perf: 合并 op_kernel 的 CMakeList 到算子根目录 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2064 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:编译工程优化 See merge request: cann/ops-math!3446 | 2 个月前 | |
工程能力升级,增加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: 支持 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 | 2 个月前 | |
refactor: 引用工程公共仓cann-cmake统一打包构建API,移除本地冗余脚本 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2372 merge master into master refactor: 引用工程公共仓cann-cmake统一打包构建API,移除本地冗余脚本 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 重构 ops-math 仓库的打包构建流程,将本地维护的打包脚本和安装脚本替换为引用工程公共仓 cann-cmake 中统一的 API,降低构建工程的复杂度和维护成本。 主要改动: 1. **升级 cann-cmake 版本**:从 master-001 升级到 master-002,新增 SHA256 校验( fetch_cann_cmake.cmake) 2. **替换打包脚本引用路径**:将 cmake/package.cmake 中所有 ${CMAKE_SOURCE_DIR}/scripts/package/ 和 ${CMAKE_SOURCE_DIR}/cmake/ 本地路径替换为 ${CANN_CMAKE_DIR}/ 公共路径 3. **移除本地冗余脚本**:删除 cmake/makeself_built_in.cmake、cmake/makeself_custom.cmake、cmake/third_party/makeself-fetch.cmake 以及 scripts/package/common/ 和 scripts/package/latest_manager/ 下的全部 21 个文件 4. **更新打包配置**:新增 CPACK_PACKAGE_PARAM_NAME 参数和 share_info_name XML 配置项(ops_math.xml) 5. **更新编译文档**:同步更新 cann-cmake 版本号说明(docs/zh/install/compile.md) ### 改动原因 ops-math 仓库中维护了大量与其他 CANN 子仓库重复的打包/安装脚本,增加了维护成本和一致性问题。通过引用工程公共仓 cann-cmake 中统一的 API,可以: - 消除跨仓库的脚本重复维护 - 确保所有子仓库的打包行为一致 - 降低单个仓库的构建工程复杂度 ### 改动方法 - 修改 CMake 构建脚本,将文件引用路径从本地 ${CMAKE_SOURCE_DIR} 切换到公共仓 ${CANN_CMAKE_DIR} - 删除所有已迁移到公共仓的本地脚本文件 - 新增必要的打包参数以适配公共仓 API 接口 ## 关联的Issue - #1337 ## 测试 通过编译验证构建流程正常运行,打包产物与公共仓 API 对接正确。 ## 文档更新 更新了 docs/zh/install/compile.md 中 cann-cmake 版本号说明。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建重构 See merge request: cann/ops-math!2372 | 4 个月前 | |
fix: compile with opbase source Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !1193 merge br_reduce into master fix: compile with opbase source Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> compile with opbase source 1. 本仓下载opbase仓源码 2. 查找头文件,优先使用本地下载的路径 3. 不查找lib库,并移除lib库依赖 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!1193 | 5 个月前 | |
PG short soc version 改名,漏改文件修正 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !3113 merge 0603 into master PG short soc version 改名,漏改文件修正 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配PG 特性 将mc62cm12a改成短的short soc version (mc62), 有文件漏改。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1847 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 1.atc转模型 ok 2.单算子ok 3.二级冒烟ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3113 | 2 个月前 | |
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: 支持 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 | 2 个月前 | |
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 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 7 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 9 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |