文件最后提交记录最后更新时间
feat: 支持KERNEL_SRC机制,允许算子指定自定义kernel入口文件 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !3106 merge master into master feat: 支持KERNEL_SRC机制,允许算子指定自定义kernel入口文件 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 本PR支持KERNEL_SRC机制,允许算子通过CMake的KERNEL_SRC参数指定自定义的kernel入口文件名,而非使用默认的算子名作为入口文件。同步ops-nn PR#3936的cmake/scripts改动。 ### 改动内容 1. **CMake构建系统改造**: - cmake/func.cmakeadd_kernel_sources()函数新增KERNEL_SRC参数,用于指定自定义kernel入口文件(缺省为算子名.cpp),并在显式指定时将其记录到KERNEL_SRC_LIST缓存变量中 - cmake/opbuild.cmake:在opbuild构建流程中新增调用insert_kernel_src.py脚本,将kernelSrc信息注入到生成的INI文件中(包括base、inner、exc三个目录) - cmake/ut.cmakeAddOpsTestCase函数中新增KERNEL_SRC_LIST查找逻辑,支持UT构建时定位自定义kernel源文件 - cmake/variables.cmake:新增KERNEL_SRC_LIST缓存变量 2. **新增脚本**: - scripts/util/insert_kernel_src.py:新脚本,负责读取算子信息INI文件,在对应算子section中插入或更新kernelSrc.value字段 3. **构建脚本适配**: - scripts/util/opdesc_parser.pyOpDesc类新增kernel_src字段和parse_kernel_src()方法,支持解析kernelSrc.value配置 - scripts/util/ascendc_impl_build.py:构建时使用kernel_src(缺省回退到op_file)定位实际kernel源文件路径 - scripts/util/parse_ini_to_json.py:在INI→JSON转换时跳过kernelSrc键(仅构建时使用) - scripts/kernel/binary_script/gen_ops_compile_ini.py:更新最小参数个数检查(5→6) 4. **示例验证**: - math/add/op_kernel/CMakeLists.txt:add算子使用KERNEL_SRC arch35/add.cpp指定自定义入口 - math/add/op_kernel/add_apt.cppmath/add/op_kernel/arch35/add.cpp:重命名并更新include路径为相对路径 ## 关联的Issue - #1832 ## 测试 - 使用add算子验证kernel_src机制在opbuild和UT构建中的正确性 - 验证insert_kernel_src.py脚本能正确向INI文件注入kernelSrc.value字段 ## 文档更新 - cmake/func.cmake中新增了KERNEL_SRC参数的注释说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!310611 小时前
feat: 支持KERNEL_SRC机制,允许算子指定自定义kernel入口文件 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !3106 merge master into master feat: 支持KERNEL_SRC机制,允许算子指定自定义kernel入口文件 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 本PR支持KERNEL_SRC机制,允许算子通过CMake的KERNEL_SRC参数指定自定义的kernel入口文件名,而非使用默认的算子名作为入口文件。同步ops-nn PR#3936的cmake/scripts改动。 ### 改动内容 1. **CMake构建系统改造**: - cmake/func.cmakeadd_kernel_sources()函数新增KERNEL_SRC参数,用于指定自定义kernel入口文件(缺省为算子名.cpp),并在显式指定时将其记录到KERNEL_SRC_LIST缓存变量中 - cmake/opbuild.cmake:在opbuild构建流程中新增调用insert_kernel_src.py脚本,将kernelSrc信息注入到生成的INI文件中(包括base、inner、exc三个目录) - cmake/ut.cmakeAddOpsTestCase函数中新增KERNEL_SRC_LIST查找逻辑,支持UT构建时定位自定义kernel源文件 - cmake/variables.cmake:新增KERNEL_SRC_LIST缓存变量 2. **新增脚本**: - scripts/util/insert_kernel_src.py:新脚本,负责读取算子信息INI文件,在对应算子section中插入或更新kernelSrc.value字段 3. **构建脚本适配**: - scripts/util/opdesc_parser.pyOpDesc类新增kernel_src字段和parse_kernel_src()方法,支持解析kernelSrc.value配置 - scripts/util/ascendc_impl_build.py:构建时使用kernel_src(缺省回退到op_file)定位实际kernel源文件路径 - scripts/util/parse_ini_to_json.py:在INI→JSON转换时跳过kernelSrc键(仅构建时使用) - scripts/kernel/binary_script/gen_ops_compile_ini.py:更新最小参数个数检查(5→6) 4. **示例验证**: - math/add/op_kernel/CMakeLists.txt:add算子使用KERNEL_SRC arch35/add.cpp指定自定义入口 - math/add/op_kernel/add_apt.cppmath/add/op_kernel/arch35/add.cpp:重命名并更新include路径为相对路径 ## 关联的Issue - #1832 ## 测试 - 使用add算子验证kernel_src机制在opbuild和UT构建中的正确性 - 验证insert_kernel_src.py脚本能正确向INI文件注入kernelSrc.value字段 ## 文档更新 - cmake/func.cmake中新增了KERNEL_SRC参数的注释说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!310611 小时前