已合并
feat(aicpu): AICPU built-in整包准入manifest机制 #11655
liu-wei创建于 24 天前
feat(aicpu): AICPU built-in整包准入manifest机制 #11655
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 liu-wei 的贡献)24 天前 关联了issue:[Bug-Report|缺陷反馈]: aclnnAddmv在fp32输入且cubeMathType=0、K∈[2048,16384]大维度累加下均方根误差比超阈(本次样本8/9例),另有降精度模式、整型/fp64/bool路径、极值域等多族大比例精度分歧(共417/961例,多属标杆口径或未定义语义分歧待维护者裁定)
24 天前 关联了issue:[Bug-Report|缺陷反馈]: aclnnAddmv在fp32输入且cubeMathType=0、K∈[2048,16384]大维度累加下均方根误差比超阈(本次样本8/9例),另有降精度模式、整型/fp64/bool路径、极值域等多族大比例精度分歧(共417/961例,多属标杆口径或未定义语义分歧待维护者裁定)
atomgit-bot
24 天前 评论:
24 天前 评论:
变更摘要
本 PR 参考 cann/ops-math#5693,为 ops-nn 移植 AICPU built-in 整包准入 manifest 机制,通过白名单将原本"隐式排除"的方式显式化:默认全部 OFF,算子准入由后续按需登记 xxx=ON。核心改动包括新增准入清单配置文件、在 cmake/func.cmake 中提供准入判断 helper,并在 cmake/symbol.cmake 的 gen_norm_symbol() 中补齐 built-in 产物接线;其余为 23 个 AICPU 算子 op_kernel_aicpu/CMakeLists.txt 的门控接入与少量版权头规范化(无对应内嵌 patch,此处不展开实现细节)。不改动 ENABLE_CUSTOM custom 直通、UT 与 host 常量折叠链路,空 manifest 下整包产物与 master 保持一致。
主要改动
- 新增准入清单配置: 新增
cmake/config/aicpu_builtin_package_manifest.cmake,定义AICPU_BUILTIN_PACKAGE_FORCE_ALL(默认OFF)与空的AICPU_BUILTIN_PACKAGE_MANIFEST列表,键为算子名(如elu、scatter_nd_min),需按需登记新算子=ON。 - 新增准入判断 helper: 在
cmake/func.cmake中新增check_aicpu_builtin_pkg_allowed(op_name),当AICPU_BUILTIN_PACKAGE_FORCE_ALL为真或清单中存在匹配项时判定准入,并通过PARENT_SCOPE向调用方返回_AICPU_BUILTIN_PKG_ALLOWED。 - 补齐 built-in 产物接线: 在
cmake/symbol.cmake的gen_norm_symbol()中新增条件分支,当NOT NO_AICPU AND ENABLE_PACKAGE时调用gen_aicpu_json_symbol(TRUE)与gen_aicpu_kernel_symbol(TRUE),生成 built-in 整包所需的aicpu_nn.json与libnn_aicpu_kernels.so。
🧩 本次 Review 已使用自定义 Skill:


不准确?
atomgit-bot
24 天前 评论:
24 天前 评论:


不准确?
24 天前 添加了label:cann-cla/yes
此处折叠了75条消息 查看更多
20 天前 添加了label:lgtm
20 天前 关闭了关联的issue
20 天前 合入了pull request
CANN-robot
20 天前 评论:
20 天前 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


zhajianqing123
20 天前 评论:
20 天前 评论:
/approve


描述
为 ops-nn 移植 AICPU built-in 整包准入 manifest 机制:
通过白名单控制 AICPU 算子是否准入 built-in 整包,默认全 OFF(与 ops-math 上线口径一致,算子准入由后续 PR 按需登记
xxx=ON),将"隐式排除"显式化为白名单机制。主要改动:
cmake/config/aicpu_builtin_package_manifest.cmake:准入清单(AICPU_BUILTIN_PACKAGE_FORCE_ALL默认 OFF + 空 manifest),在进入算子子目录前 includecmake/func.cmake新增check_aicpu_builtin_pkg_allowed()门控 helperop_kernel_aicpu/CMakeLists.txt的 op_def 收集与 cust obj 编译包进if (ENABLE_CUSTOM OR _AICPU_BUILTIN_PKG_ALLOWED)门控gen_norm_symbol()补 built-in 产出接线:NO_AICPU=OFF && ENABLE_PACKAGE=ON时生成aicpu_nn.json+libnn_aicpu_kernels.so(安装至opp/built-in/op_impl/aicpu/{config,kernel})不受 manifest 控制(行为不变):
ENABLE_CUSTOM(custom 包直通)、UT(AddAicpuOpTestCase与收集逻辑解耦)、host 常量折叠(libopconstant_folding_nn.so)默认行为无回退: master 上
gen_norm_symbol()本无 AICPU 产出调用(收集物无消费者),空 manifest 下整包产物与 master 完全一致关联的Issue
https://gitcode.com/cann/ops-nn/issues/6515
测试
本地 5 组 configure/build 验证:
elu=ONaicpu_nn.json仅含 Elu;libnn_aicpu_kernels.so仅链接 elu_cust_obj;安装路径正确FORCE_ALL=ONENABLE_CUSTOM=ONpre-commit 全部通过(codespell、OAT 合规等)。
文档更新
无需文档更新(纯构建配置改动)
类型标签