| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 2 个月前 | |
refactor: 移除三方库本地 CMake 构建脚本并适配 Protobuf 头文件路径 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !2948 merge master into master refactor: 移除三方库本地 CMake 构建脚本并适配 Protobuf 头文件路径 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 移除 cmake/third_party/ 目录下的三方库本地 CMake 构建脚本,并适配 Protobuf 头文件路径变量。 具体改动: 1. **删除三方库本地构建脚本**(6 个文件,共 930 行): - abseil-cpp.cmake:abseil-cpp 源码下载与构建逻辑 - ascend_protobuf.cmake:protobuf 25.1 源码下载、patch 应用与编译逻辑 - eigen.cmake:Eigen 5.0.0 头文件库下载与 Eigen3::EigenMath target 定义 - gtest.cmake:GoogleTest 1.14.0 源码下载与编译逻辑 - json.cmake:nlohmann json 3.11.3 头文件下载与解压逻辑 - build/modules/patch/protobuf-hide_absl_symbols.patch:abseil 符号隐藏补丁 - build/modules/patch/protobuf_25.1_change_version.patch:protobuf 版本兼容性补丁 2. **适配 Protobuf 头文件路径**(cmake/func.cmake): - 将 target_include_directories 中的 ${Protobuf_INCLUDE} 替换为 ${HOST_PROTOC_SRC}、${HOST_PROTOC_PATH}、${PROTOBUF_INCLUDE_DIRS} 三个变量,对齐上游 CANN 统一提供的 Protobuf 路径。 改动原因:三方库的获取和构建已由 CANN 上游统一管理(通过 third_lib_download.py 预下载),仓库内不再需要维护本地构建脚本。 ## 关联的Issue - #1663 ## 测试 本地编译验证通过,TF Plugin 模块头文件引用正确。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构 - 移除冗余三方库构建脚本 See merge request: cann/ops-math!2948 | 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 | 7 个月前 | |
工程能力升级,增加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 | 6 个月前 | |
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 | 2 个月前 | |
noaicpu option is supported Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !3292 merge 612aicpu into master noaicpu option is supported Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 问题背景:mc62 场景是不需要用到毕昇编译器的,因此构建时并没有安装毕昇编译器的任何东西,但aicpu因为涉及device侧运行,需要用到毕昇的交叉工具链,所以会报错工具链找不到。 解决方案:因为mc62 不需要执行aicpu算子,且不支持跑aicpu算子,因此利用--noaicpu参数选项,在构建aicpu算子的时候进行kernel隔离。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1959 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3292 | 1 个月前 | |
feat: 优化 cmake 构建选项收集逻辑,支持自定义参数值 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !3081 merge master into master feat: 优化 cmake 构建选项收集逻辑,支持自定义参数值 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 优化 cmake 构建系统中的选项收集逻辑,支持自定义参数值,修复构建过程中参数处理的多项问题。 主要改动: **cmake/func.cmake — add_kernel_sources 函数优化:** - 支持 simplified_key 参数值为 "none"(不区分大小写),自动规范化为 "None" - 修复 auto_sync 参数比较逻辑,转换为小写后再比较,支持不区分大小写的 "false" - 优化列表追加方式,使用引号包裹确保参数完整性 - 仅在 auto_sync_option 为 "false" 时才收集 AUTO_SYNC_LIST - 仅在 unit_options 有值时才收集 OPTION_LIST **cmake/gen_ops_info.cmake — 构建信息生成优化:** - 放宽算子类型校验逻辑:从 is_valid 校验改为 op_type 非空检查,使 modext 场景下编译选项能正确解析 - 为空的 auto_sync_str 和 options_str 提供默认回退值,防止参数为空时构建异常 ## 关联的Issue - #1766 ## 测试 - 通过构建验证自定义参数值场景 - 验证 modext 模式下编译选项的正确解析 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3081 | 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 | 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 | 7 个月前 | |
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 | 3 个月前 | |
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 | 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 个月前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |