| Files | Last commit | Last update |
|---|---|---|
feat(aicpu): AICPU built-in整包准入manifest机制 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !5693 merge feat/aicpu-builtin-package-manifest into master feat(aicpu): AICPU built-in整包准入manifest机制 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 新增aicpu_builtin_package_manifest.cmake策略文件,控制哪些AICPU算子在整包编译(--pkg)时打包device侧.so和json配置。 ### 设计要点 - 默认所有AICPU算子不进入built-in整包(manifest为空=OFF) - 新增算子想进入built-in整包时,在manifest中添加ON条目即可 - 想快速全量放开,把AICPU_BUILTIN_PACKAGE_FORCE_ALL改为ON - 不影响自定义包模式(--ops --vendor_name)行为 - host常量折叠(libopconstant_folding_math.so)不受manifest控制,保持已有行为 - 不新增任何编译选项或命令参数 ### 改动文件 - cmake/config/aicpu_builtin_package_manifest.cmake(新增):manifest策略文件 - CMakeLists.txt:在add_subdirectory之前include manifest文件 - cmake/func.cmake:add_all_modules_sources中增加manifest准入判断,统一控制AICPU的OpDef/JSON/cust_obj三条路径 - cmake/symbol.cmake:gen_norm_symbol中在ENABLE_PACKAGE且非DISABLE_AICPU时调用gen_aicpu_json_symbol和gen_aicpu_kernel_symbol(无准入算子时自动跳过) - 4个算子(topk/tan/lin_space/identity)的op_kernel_aicpu/CMakeLists.txt:统一加manifest准入检查,OpDef/JSON收集和cust_obj编译受同一条件控制 ### manifest使用方式 cmake # cmake/config/aicpu_builtin_package_manifest.cmake set(AICPU_BUILTIN_PACKAGE_FORCE_ALL OFF) set(AICPU_BUILTIN_PACKAGE_MANIFEST # 新增算子想进入built-in整包时在此添加 # "new_op=ON" ) # 全量放开: set(AICPU_BUILTIN_PACKAGE_FORCE_ALL ON) ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3194 ## 测试 ### 一、已有功能回归测试(manifest为空,验证不影响已有功能) TC-01: 整包编译(manifest为空) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 编译成功;libopconstant_folding_math.so 生成;libmath_aicpu_kernels.so 不生成;aicpu_math.json 不生成;AI Core 产物不变 TC-02: 自定义算子包编译(--ops=cumsum) 命令: bash build.sh --pkg --soc=ascend910_93 --ops=cumsum --vendor_name=custom -j16 预期: 编译成功;libmath_aicpu_kernels.so 生成(含cumsum + identity等);cust_aicpu_kernel.json 生成;与改动前行为一致 TC-03: AI Core 算子不受影响 命令: bash build.sh --pkg --soc=ascend910_93 --ops=add -j16 预期: AI Core kernel binary 正常编译,不涉及 aicpu 逻辑 TC-04: UT 编译不受影响 命令: bash build.sh -u --noexec --soc=ascend910_93 -j16 预期: UT 编译成功,aicpu kernel UT 可执行文件生成 TC-05: host常量折叠库不受manifest影响 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libopconstant_folding_math.so 生成且包含全部已有aicpu算子,manifest为空不影响host_const_obj收集 TC-06: 静态库编译不受影响 命令: bash build.sh --pkg --static --soc=ascend910_93 -j16 预期: 静态库编译成功,产物与改动前一致 ### 二、manifest准入功能测试 TC-07: manifest为空时整包不产出device aicpu产物 前置: manifest中 AICPU_BUILTIN_PACKAGE_MANIFEST 为空 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 不生成;aicpu_math.json 不生成 TC-08: manifest指定单个算子ON(cumsum) 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(仅含cumsum);aicpu_math.json 生成(仅含cumsum);libopconstant_folding_math.so 照常生成(含全部算子) TC-09: manifest指定多个算子ON 前置: manifest中 "cumsum=ON" 和 "log=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(含cumsum和log);aicpu_math.json 生成(含cumsum和log) TC-10: AICPU_BUILTIN_PACKAGE_FORCE_ALL=ON全量放开 前置: manifest中 set(AICPU_BUILTIN_PACKAGE_FORCE_ALL ON) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(含全部aicpu算子);aicpu_math.json 生成(含全部aicpu算子) TC-11: manifest中写ON但算子不存在 前置: manifest中 "nonexistent_op=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 编译成功(不报错);libmath_aicpu_kernels.so 不生成;aicpu_math.json 不生成 TC-12: --noaicpu仍然完全关闭aicpu 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 --noaicpu -j16 预期: DISABLE_AICPU=TRUE;不编译任何aicpu .o;不生成libmath_aicpu_kernels.so;不生成aicpu_math.json;不生成libopconstant_folding_math.so ### 三、manifest匹配准确性测试 TC-13: manifest key使用算子名 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 匹配成功,cumsum进入整包 TC-14: manifest key写错不匹配(大小写敏感) 前置: manifest中 "Cumsum=ON"(大写C) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 不匹配(STREQUAL大小写敏感),cumsum不进入整包 TC-15: manifest value非ON不匹配 前置: manifest中 "cumsum=OFF" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 不匹配(STREQUAL要求精确"=ON"),cumsum不进入整包 ### 四、安装卸载测试 TC-16: 整包安装(manifest为空) 命令: bash build.sh --pkg --soc=ascend910_93 -j16 && bash build_out/*.run --quiet --full 预期: 安装成功无ERROR;opp/built-in/op_impl/host_cpu/libopconstant_folding_math.so 存在;opp/built-in/op_impl/aicpu/ 下无 aicpu_math.json 和 libmath_aicpu_kernels.so TC-17: 整包安装(manifest指定ON) 前置: manifest中 "cumsum=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 && bash build_out/*.run --quiet --full 预期: 安装成功;opp/built-in/op_impl/aicpu/config/aicpu_math.json 存在;opp/built-in/op_impl/aicpu/kernel/libmath_aicpu_kernels.so 存在;opp/built-in/op_impl/host_cpu/libopconstant_folding_math.so 存在 TC-18: 整包卸载 命令: bash build_out/*.run --quiet --uninstall 预期: 卸载成功,所有aicpu相关文件被清理 ### 五、4个特殊算子回归测试(topk/tan/lin_space/identity) TC-19: 自定义包模式下4个算子行为不变 命令: bash build.sh --pkg --soc=ascend910_93 --ops=cumsum --vendor_name=custom -j16 预期: 4个算子在自定义包模式下仍被收入AICPU_CUST_OBJ_TARGETS;libmath_aicpu_kernels.so 包含 identity;cust_aicpu_kernel.json 包含 identity;与改动前行为一致 TC-20: 整包模式下4个算子受manifest控制 前置: manifest为空 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: 4个算子不被收入AICPU_CUST_OBJ_TARGETS;libmath_aicpu_kernels.so 不生成;identity 不出现在任何产物中 TC-21: 整包模式下manifest指定topk=ON 前置: manifest中 "topk=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(仅含topk);aicpu_math.json 生成(含topk);identity 不在产物中 TC-22: 整包模式下manifest指定identity=ON 前置: manifest中 "identity=ON" 命令: bash build.sh --pkg --soc=ascend910_93 -j16 预期: libmath_aicpu_kernels.so 生成(含identity);aicpu_math.json 生成(含identity,JSON文件正确收集);topk 不在产物中 ### 六、pre-commit检查 TC-23: pre-commit通过 命令: pre-commit run --files <所有修改的文件> 预期: 全部 Passed ## 文档更新 无 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-math!5693 | 1 month ago | |
feat(cmake): prebed include/aicpu path in Findaicpu.cmake Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !5411 merge feat/prebed-include-aicpu-path into master feat(cmake): prebed include/aicpu path in Findaicpu.cmake Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 在 Findaicpu.cmake 中为已安装依赖包构建场景补充 include/aicpu 头文件搜索路径,预埋后续opbase中pkg_inc/aicpu头文件给include/aicpu/路径切换平稳过渡。 ### 变更 cmake if(BUILD_WITH_INSTALLED_DEPENDENCY_CANN_PKG) set(AICPU_INC_DIRS ... ${ASCEND_DIR}/${SYSTEM_PREFIX}/include/experiment/datagw/aicpu/common ${ASCEND_DIR}/${SYSTEM_PREFIX}/pkg_inc ${ASCEND_DIR}/${SYSTEM_PREFIX}/pkg_inc/aicpu ${ASCEND_DIR}/${SYSTEM_PREFIX}/include/aicpu ← 新增 ) ### 涉及文件 | 文件 | 变更 | 说明 | |------|------|------| | cmake/modules/Findaicpu.cmake | +1 | AICPU_INC_DIRS 追加 include/aicpu 路径 | ## 关联的Issue include path增加一个路径,逻辑简单,不用创建issue了。 ## 测试 相关用例测试通过。 ## 文档更新 NA ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-math!5411 | 2 months ago | |
feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6990 merge f1102 into master feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 ops-math 算子注册方式正在从 AddConfig("<socVersion>") 迁移到 ArchConfigHelper::AddConfigByArch(Ops::Base::DAV_xxx)(npuArch 注册),但仓库内构建与 CI 侧的“算子是否支持某芯片”判定仍只识别 AddConfig("<socVersion>")。这会将只用 AddConfigByArch 注册的算子误判为“不支持当前芯片”,进而影响 tiling 目录收集、ops-info 生成、CI 算子筛选、本地自检与 cannsim 选算子。本 PR 为 soc/npuArch 构建适配,补齐上述链路的 arch 识别能力。 ### 改动方法 - **cmake/func.cmake(add_all_modules_sources)**:NPU_ARCH 与 TILING_DIR 仍按位置一一配对,但当前构建芯片的匹配 key 改为统一先换算为 npuArch 再匹配;仅当声明列表中查不到该 npuArch(即列表里全是 socVersion 的老写法)时,回退为按 socVersion 字面值匹配,保持对旧配置的兼容。 - **cmake/gen_ops_info.cmake(check_op_supported)**:在原有 \.AddConfig(\s*"${COMPUTE_UNIT}" 之外增加 AddConfigByArch ... <ARCH_UPPER> 备选匹配分支(主模块与 MODULE_EXT 两处 grep 同步),get_npu_arch_by_soc_version 可用且能换算时才启用,避免非 arch 芯片误匹配。 - **scripts/ci/gen_ci_cmd.py**:新增 SOC_TO_ARCH 映射与 soc_to_arch(),check_op_supports_soc 在原有 AddConfig("{soc}") 字符串判断外,增加 AddConfigByArch + 对应 DAV_xxx 的正则判定。 - **scripts/ci/gen_ops_soc.py**:新增 SOC_TO_ARCH 及由其反向推导的 ARCH_TO_SOC_NAMES;新增 extract_add_config_by_arch_configs() 解析 AddConfigByArch 调用中的 DAV_xxx 并映射回 socVersion,汇入 extract_ai_core_configs(),使算子分组(grouped)能正确识别 arch 注册的算子;另含引号/格式整理(无逻辑变化)。 - **scripts/ci/local_check.sh**:内置 SOC_TO_ARCH 关联数组与 soc_to_npu_arch(),op_supports_soc 增加 AddConfigByArch[^;]*DAV_xxx 判断;cannsim 跳过提示补充 AddConfigByArch(DAV_3510) 说明;其余为行尾空白清理(无逻辑变化)。 - **cmake/opbuild.cmake**:gen_op_host_* 目标链接 opbase_util_objs(存在时)并加入 OPBASE_INC_DIRS 头文件搜索路径,满足 op def 侧依赖 opbase 公共实现/头文件的编译需求。 - **cmake/third_party/opbase.cmake**:OPBASE_TAG_ID 由 f09beaf70dd62c9c089c237cbfcdc2bd2cb757d6 升级到 ab014585877c660db1f024a04b43650867556fbc,与 opbase 侧配套改动对齐。 ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-math/issues/4431 ## 测试 本 PR 为构建与 CI 脚本、CMake 配置适配,不涉及算子功能与精度,未新增算子用例。建议验证: - 按 arch 注册的算子构建:bash build.sh --pkg --soc=<soc_version> -j<n>,确认 tiling 目录能被 NPU_ARCH/TILING_DIR 正确收集; - ops-info 生成阶段,确认 check_op_supported 对 AddConfigByArch 注册算子返回支持; - CI 算子筛选与分组:scripts/ci/gen_ci_cmd.py、scripts/ci/gen_ops_soc.py 对含 AddConfigByArch 的 *_def.cpp 能输出对应 socVersion; - 本地自检:scripts/ci/local_check.sh --soc=<soc_version> 的编译/LLT/cannsim 流程能正确选中 arch 注册的算子。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6990 | 7 days ago | |
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 | 10 months ago | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 7 days ago | |
统一配置ops-math安装目录及文件权限 Co-authored-by: q00889097<qinhan10@huawei.com> # message auto-generated for no-merge-commit merge: !5338 merge master into master 统一配置ops-math安装目录及文件权限 Created-by: qinhan123 Commit-by: q00889097 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 主要围绕 ops-math 打包脚本中安装目录及文件权限的统一配置进行清理与收敛:移除 install.sh 与 opp_install.sh 中分散在各阶段(读取安装信息前、安装完成后、root/非 root 分支内)且彼此重复/易冲突的 chmod 调用,并将安装信息相关文件的权限统一配置为 640,使文件权限由统一的配置项控制,减少安装过程中对目录和文件的反复授权操作。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3058 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5338 | 2 months ago | |
feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6990 merge f1102 into master feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 ops-math 算子注册方式正在从 AddConfig("<socVersion>") 迁移到 ArchConfigHelper::AddConfigByArch(Ops::Base::DAV_xxx)(npuArch 注册),但仓库内构建与 CI 侧的“算子是否支持某芯片”判定仍只识别 AddConfig("<socVersion>")。这会将只用 AddConfigByArch 注册的算子误判为“不支持当前芯片”,进而影响 tiling 目录收集、ops-info 生成、CI 算子筛选、本地自检与 cannsim 选算子。本 PR 为 soc/npuArch 构建适配,补齐上述链路的 arch 识别能力。 ### 改动方法 - **cmake/func.cmake(add_all_modules_sources)**:NPU_ARCH 与 TILING_DIR 仍按位置一一配对,但当前构建芯片的匹配 key 改为统一先换算为 npuArch 再匹配;仅当声明列表中查不到该 npuArch(即列表里全是 socVersion 的老写法)时,回退为按 socVersion 字面值匹配,保持对旧配置的兼容。 - **cmake/gen_ops_info.cmake(check_op_supported)**:在原有 \.AddConfig(\s*"${COMPUTE_UNIT}" 之外增加 AddConfigByArch ... <ARCH_UPPER> 备选匹配分支(主模块与 MODULE_EXT 两处 grep 同步),get_npu_arch_by_soc_version 可用且能换算时才启用,避免非 arch 芯片误匹配。 - **scripts/ci/gen_ci_cmd.py**:新增 SOC_TO_ARCH 映射与 soc_to_arch(),check_op_supports_soc 在原有 AddConfig("{soc}") 字符串判断外,增加 AddConfigByArch + 对应 DAV_xxx 的正则判定。 - **scripts/ci/gen_ops_soc.py**:新增 SOC_TO_ARCH 及由其反向推导的 ARCH_TO_SOC_NAMES;新增 extract_add_config_by_arch_configs() 解析 AddConfigByArch 调用中的 DAV_xxx 并映射回 socVersion,汇入 extract_ai_core_configs(),使算子分组(grouped)能正确识别 arch 注册的算子;另含引号/格式整理(无逻辑变化)。 - **scripts/ci/local_check.sh**:内置 SOC_TO_ARCH 关联数组与 soc_to_npu_arch(),op_supports_soc 增加 AddConfigByArch[^;]*DAV_xxx 判断;cannsim 跳过提示补充 AddConfigByArch(DAV_3510) 说明;其余为行尾空白清理(无逻辑变化)。 - **cmake/opbuild.cmake**:gen_op_host_* 目标链接 opbase_util_objs(存在时)并加入 OPBASE_INC_DIRS 头文件搜索路径,满足 op def 侧依赖 opbase 公共实现/头文件的编译需求。 - **cmake/third_party/opbase.cmake**:OPBASE_TAG_ID 由 f09beaf70dd62c9c089c237cbfcdc2bd2cb757d6 升级到 ab014585877c660db1f024a04b43650867556fbc,与 opbase 侧配套改动对齐。 ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-math/issues/4431 ## 测试 本 PR 为构建与 CI 脚本、CMake 配置适配,不涉及算子功能与精度,未新增算子用例。建议验证: - 按 arch 注册的算子构建:bash build.sh --pkg --soc=<soc_version> -j<n>,确认 tiling 目录能被 NPU_ARCH/TILING_DIR 正确收集; - ops-info 生成阶段,确认 check_op_supported 对 AddConfigByArch 注册算子返回支持; - CI 算子筛选与分组:scripts/ci/gen_ci_cmd.py、scripts/ci/gen_ops_soc.py 对含 AddConfigByArch 的 *_def.cpp 能输出对应 socVersion; - 本地自检:scripts/ci/local_check.sh --soc=<soc_version> 的编译/LLT/cannsim 流程能正确选中 arch 注册的算子。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6990 | 7 days ago | |
feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6990 merge f1102 into master feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 ops-math 算子注册方式正在从 AddConfig("<socVersion>") 迁移到 ArchConfigHelper::AddConfigByArch(Ops::Base::DAV_xxx)(npuArch 注册),但仓库内构建与 CI 侧的“算子是否支持某芯片”判定仍只识别 AddConfig("<socVersion>")。这会将只用 AddConfigByArch 注册的算子误判为“不支持当前芯片”,进而影响 tiling 目录收集、ops-info 生成、CI 算子筛选、本地自检与 cannsim 选算子。本 PR 为 soc/npuArch 构建适配,补齐上述链路的 arch 识别能力。 ### 改动方法 - **cmake/func.cmake(add_all_modules_sources)**:NPU_ARCH 与 TILING_DIR 仍按位置一一配对,但当前构建芯片的匹配 key 改为统一先换算为 npuArch 再匹配;仅当声明列表中查不到该 npuArch(即列表里全是 socVersion 的老写法)时,回退为按 socVersion 字面值匹配,保持对旧配置的兼容。 - **cmake/gen_ops_info.cmake(check_op_supported)**:在原有 \.AddConfig(\s*"${COMPUTE_UNIT}" 之外增加 AddConfigByArch ... <ARCH_UPPER> 备选匹配分支(主模块与 MODULE_EXT 两处 grep 同步),get_npu_arch_by_soc_version 可用且能换算时才启用,避免非 arch 芯片误匹配。 - **scripts/ci/gen_ci_cmd.py**:新增 SOC_TO_ARCH 映射与 soc_to_arch(),check_op_supports_soc 在原有 AddConfig("{soc}") 字符串判断外,增加 AddConfigByArch + 对应 DAV_xxx 的正则判定。 - **scripts/ci/gen_ops_soc.py**:新增 SOC_TO_ARCH 及由其反向推导的 ARCH_TO_SOC_NAMES;新增 extract_add_config_by_arch_configs() 解析 AddConfigByArch 调用中的 DAV_xxx 并映射回 socVersion,汇入 extract_ai_core_configs(),使算子分组(grouped)能正确识别 arch 注册的算子;另含引号/格式整理(无逻辑变化)。 - **scripts/ci/local_check.sh**:内置 SOC_TO_ARCH 关联数组与 soc_to_npu_arch(),op_supports_soc 增加 AddConfigByArch[^;]*DAV_xxx 判断;cannsim 跳过提示补充 AddConfigByArch(DAV_3510) 说明;其余为行尾空白清理(无逻辑变化)。 - **cmake/opbuild.cmake**:gen_op_host_* 目标链接 opbase_util_objs(存在时)并加入 OPBASE_INC_DIRS 头文件搜索路径,满足 op def 侧依赖 opbase 公共实现/头文件的编译需求。 - **cmake/third_party/opbase.cmake**:OPBASE_TAG_ID 由 f09beaf70dd62c9c089c237cbfcdc2bd2cb757d6 升级到 ab014585877c660db1f024a04b43650867556fbc,与 opbase 侧配套改动对齐。 ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-math/issues/4431 ## 测试 本 PR 为构建与 CI 脚本、CMake 配置适配,不涉及算子功能与精度,未新增算子用例。建议验证: - 按 arch 注册的算子构建:bash build.sh --pkg --soc=<soc_version> -j<n>,确认 tiling 目录能被 NPU_ARCH/TILING_DIR 正确收集; - ops-info 生成阶段,确认 check_op_supported 对 AddConfigByArch 注册算子返回支持; - CI 算子筛选与分组:scripts/ci/gen_ci_cmd.py、scripts/ci/gen_ops_soc.py 对含 AddConfigByArch 的 *_def.cpp 能输出对应 socVersion; - 本地自检:scripts/ci/local_check.sh --soc=<soc_version> 的编译/LLT/cannsim 流程能正确选中 arch 注册的算子。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6990 | 7 days ago | |
工程能力升级,增加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 | 9 months ago | |
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 | 10 months ago | |
feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6990 merge f1102 into master feat: 构建与CI流程适配 npuArch 算子注册(AddConfigByArch) Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 ops-math 算子注册方式正在从 AddConfig("<socVersion>") 迁移到 ArchConfigHelper::AddConfigByArch(Ops::Base::DAV_xxx)(npuArch 注册),但仓库内构建与 CI 侧的“算子是否支持某芯片”判定仍只识别 AddConfig("<socVersion>")。这会将只用 AddConfigByArch 注册的算子误判为“不支持当前芯片”,进而影响 tiling 目录收集、ops-info 生成、CI 算子筛选、本地自检与 cannsim 选算子。本 PR 为 soc/npuArch 构建适配,补齐上述链路的 arch 识别能力。 ### 改动方法 - **cmake/func.cmake(add_all_modules_sources)**:NPU_ARCH 与 TILING_DIR 仍按位置一一配对,但当前构建芯片的匹配 key 改为统一先换算为 npuArch 再匹配;仅当声明列表中查不到该 npuArch(即列表里全是 socVersion 的老写法)时,回退为按 socVersion 字面值匹配,保持对旧配置的兼容。 - **cmake/gen_ops_info.cmake(check_op_supported)**:在原有 \.AddConfig(\s*"${COMPUTE_UNIT}" 之外增加 AddConfigByArch ... <ARCH_UPPER> 备选匹配分支(主模块与 MODULE_EXT 两处 grep 同步),get_npu_arch_by_soc_version 可用且能换算时才启用,避免非 arch 芯片误匹配。 - **scripts/ci/gen_ci_cmd.py**:新增 SOC_TO_ARCH 映射与 soc_to_arch(),check_op_supports_soc 在原有 AddConfig("{soc}") 字符串判断外,增加 AddConfigByArch + 对应 DAV_xxx 的正则判定。 - **scripts/ci/gen_ops_soc.py**:新增 SOC_TO_ARCH 及由其反向推导的 ARCH_TO_SOC_NAMES;新增 extract_add_config_by_arch_configs() 解析 AddConfigByArch 调用中的 DAV_xxx 并映射回 socVersion,汇入 extract_ai_core_configs(),使算子分组(grouped)能正确识别 arch 注册的算子;另含引号/格式整理(无逻辑变化)。 - **scripts/ci/local_check.sh**:内置 SOC_TO_ARCH 关联数组与 soc_to_npu_arch(),op_supports_soc 增加 AddConfigByArch[^;]*DAV_xxx 判断;cannsim 跳过提示补充 AddConfigByArch(DAV_3510) 说明;其余为行尾空白清理(无逻辑变化)。 - **cmake/opbuild.cmake**:gen_op_host_* 目标链接 opbase_util_objs(存在时)并加入 OPBASE_INC_DIRS 头文件搜索路径,满足 op def 侧依赖 opbase 公共实现/头文件的编译需求。 - **cmake/third_party/opbase.cmake**:OPBASE_TAG_ID 由 f09beaf70dd62c9c089c237cbfcdc2bd2cb757d6 升级到 ab014585877c660db1f024a04b43650867556fbc,与 opbase 侧配套改动对齐。 ## 关联的Issue - 关联 Issue:https://gitcode.com/cann/ops-math/issues/4431 ## 测试 本 PR 为构建与 CI 脚本、CMake 配置适配,不涉及算子功能与精度,未新增算子用例。建议验证: - 按 arch 注册的算子构建:bash build.sh --pkg --soc=<soc_version> -j<n>,确认 tiling 目录能被 NPU_ARCH/TILING_DIR 正确收集; - ops-info 生成阶段,确认 check_op_supported 对 AddConfigByArch 注册算子返回支持; - CI 算子筛选与分组:scripts/ci/gen_ci_cmd.py、scripts/ci/gen_ops_soc.py 对含 AddConfigByArch 的 *_def.cpp 能输出对应 socVersion; - 本地自检:scripts/ci/local_check.sh --soc=<soc_version> 的编译/LLT/cannsim 流程能正确选中 arch 注册的算子。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6990 | 7 days ago | |
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 | 3 months ago | |
工程框架支持兼容arch配置(同步ops-nn PR #11603,适配本仓差异) Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !6325 merge master into master 工程框架支持兼容arch配置(同步ops-nn PR #11603,适配本仓差异) 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!6325 | 26 days ago | |
feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !6969 merge br_5162_series_rename into master feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 **1. 区分 5162 芯片 soc 版本与短名/series 命名**(对齐 MC62/Ascend950 惯例): - soc 版本:保留 Ascend5162A/ascend5162a;短名/series:ascend5162a 更名为 ascend5162 **2. reduce_sum/max/min/mean 算子注册适配 ascend5162**(移植 PR #6504,适配名统一改为 ascend5162): - 4 个 def.cpp 追加 AddConfig("ascend5162", aicoreConfig),复用 950 全量配置(含 B64 类型) - 4 个 CMakeLists 的 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 追加 ascend5162/arch35 **3. 新增 IsSimtSupported 平台 SIMT 能力查询函数**(common/inc/op_host/tiling_util.h,纯头文件): - 架构白名单 {DAV_3510, DAV_5102, DAV_9201, DAV_9202},DAV_5162 等无 SIMT 硬件的架构返回 false - DAV_ 常量经 opbase op_const_def.h 解析(旧版 CANN 兼容),TilingParseContext/TilingContext 双重载 - 参考 cann/opbase PR #1065 评审意见,与 ops-nn/ops-cv 仓实现保持一致 ## 测试 - pre-commit 全量 hook 通过 - IsSimtSupported g++ 语法校验与双重载实例化 0 error ## 文档更新 无 See merge request: cann/ops-math!6969 | 8 days ago | |
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 | 3 months ago | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 7 days ago | |
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 | 11 months ago | |
fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !7056 merge master into master fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 ASAN 流水线生成 op_kernel tiling 头文件时的运行库加载顺序错误。ASAN 模式下,在启动 Python 前预加载当前编译器对应的 libasan.so,并仅对头文件生成进程关闭泄漏检测,避免 Python/TBE 退出时的泄漏报告阻断构建。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4373 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ASAN 模式下,流水线日志中失败的 13 个 tiling 头文件生成目标均构建成功。非 ASAN 模式 CMake 配置、脚本语法检查、git diff --check 和 pre-commit 检查均通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7056 | 7 days ago | |
build: 调整 opbase 依赖版本及 tiling 头文件顺序 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !6719 merge revert/math-opbase-update-6712 into master build: 调整 opbase 依赖版本及 tiling 头文件顺序 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 修改内容 调整 Math 构建使用的 opbase 依赖版本和 tiling 头文件搜索顺序,共涉及两个 CMake 文件。 - cmake/third_party/opbase.cmake:OPBASE_TAG_ID 从 185a0f16167f426ace4c04e18e6989d20fcedccf 调整为 f09beaf70dd62c9c089c237cbfcdc2bd2cb757d6。 - cmake/variables.cmake:OP_TILING_INCLUDE 按 C_SEC_INCLUDE、PLATFORM_INC_DIRS、METADEF_INCLUDE_DIRS、TILINGAPI_INC_DIRS、NPURUNTIME_INCLUDE_DIRS、OPBASE_INC_DIRS 的顺序组织头文件路径。 算子 Host、Tiling、Kernel、UT 以及 func.cmake 均无改动。 ## 验证 - 两个改动文件的本地 pre-commit 检查通过。 - 已核对差异范围仅包含上述依赖 SHA 和 include 顺序调整,一次提交。 - 当前提交的编译和测试结果以本 PR 流水线为准。 See merge request: cann/ops-math!6719 | 15 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 1 month ago | ||
| 2 months ago | ||
| 7 days ago | ||
| 10 months ago | ||
| 7 days ago | ||
| 2 months ago | ||
| 7 days ago | ||
| 7 days ago | ||
| 9 months ago | ||
| 10 months ago | ||
| 7 days ago | ||
| 3 months ago | ||
| 26 days ago | ||
| 8 days ago | ||
| 3 months ago | ||
| 7 days ago | ||
| 11 months ago | ||
| 7 days ago | ||
| 15 days ago |