已关闭
[Requirement|需求建议]: 出包命令应过滤无 op_kernel 目录的算子 #2761
songkai111创建于  18 天前关闭于  18 天前
songkai111成员
18 天前 创建

一、背景信息 (必填)

CI 出包(pkg)模式下,scripts/ci/gen_ci_cmd.pybuild_package_commands 仅按 DEFAULT_FILTER_SOC(ascend910b)过滤算子,未校验算子是否存在 op_kernel 目录。出包需要生成 kernel 二进制,无 op_kernel 目录的算子无法出包,可能导致出包命令包含无法构建/不可用的算子。

二、价值/作用 (必填)

出包命令只保留具备 op_kernel 目录(可生成 kernel 二进制)的算子,避免出包失败或产出不可用的自定义算子包;被丢弃的算子打印告警列出,便于排查与后续补齐。

三、设计方案 (必填)

scripts/ci/gen_ci_cmd.py 出包命令生成链路中新增「op_kernel 目录过滤」:

  • 新增 check_op_has_op_kernel(op_name, is_experimental=False):按 math/conversion/random/(experimental 场景为对应 experimental/ 前缀)检查算子目录下是否存在 op_kernel 子目录。
  • 新增 filter_ops_by_op_kernel(ops, is_experimental=False):过滤出存在 op_kernel 目录的算子集合。
  • build_package_commands 在 SOC 过滤之后追加 op_kernel 目录过滤,被丢弃的算子打印告警,过滤后为空回退到默认算子命令(is_finite / acos)。
3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)

不涉及具体推理/训练框架使能;属于 CI 出包流水线脚本(--pkg 模式)的能力增强。

3.2 总体设计
3.2.1 算子支持的数据类型

不涉及(脚本层过滤,与算子数据类型无关)。

3.2.2 host侧设计

不涉及算子 host 侧实现;脚本仅按目录结构(op_kernel 是否存在)过滤出包算子集合。

3.2.3 kernel侧设计

不涉及 kernel 实现;只判断算子目录下是否具备 op_kernel 目录(出包依赖 kernel 二进制)。

3.3 支持硬件

默认 SOC:ascend910b(DEFAULT_FILTER_SOC)。SOC 过滤逻辑沿用现有 filter_ops_by_soc_support,本次新增的 op_kernel 目录过滤与之串联。

3.4 算子约束限制

无 op_kernel 目录的算子(如仅提供 host 层实现/接口的算子)无法出包,将从出包命令中丢弃并打印告警。

💡 备注(选填)
关联 PR:https://gitcode.com/cann/ops-math/pull/4896

likedislike
Ssongkai111成员
18 天前 添加了label:requirement
CANN-robotCANN-robot成员
18 天前 关闭了 issue
CANN-robotCANN-robot成员
18 天前 添加了label:resolved
songkai111成员
18 天前 评论:

/assign @songkai111

likedislike
CANN-robotCANN-robot成员
18 天前 将 songkai111 设为负责人