已关闭
[Bug-Report|缺陷反馈]: --pkg 模式编译仅有信息库无 op_kernel 的算子(如 bitcast)时 kernel 编译报错 #2785
songkai111创建于  13 天前关闭于  12 天前
songkai111成员
13 天前 创建

一、问题描述 (必填)

--pkg 出包模式下编译仅定义算子信息库、没有 kernel 实现的算子(如 bitcast)时,kernel 二进制编译链路报错:

  • cmake/gen_ops_info.cmake 按 SoC 编译算子的循环中,对不存在 op_kernel 目录的算子执行 find ${OP_DIR}/op_kernel 会报"目录不存在",导致出包编译失败;
  • scripts/kernel/binary_script/gen_opcinfo_from_opinfo.py 在解析 opFile.value=Null(表示仅有信息库、无 kernel 实现)的算子时会生成 dynamic/Null.py 条目写入 kernel 编译清单,残留无效条目导致编译失败;
  • scripts/util/parse_ini_to_json.pyFORMAT_LIST 缺少 FRACTAL_NZ_C0_8(CANN 原生支持的 ACL_FORMAT_FRACTAL_NZ_C0_8),使用该格式的算子 ops-info 校验不通过。

二、环境信息 (可选)

  • 昇腾硬件型号:ascend950(验证环境)
  • CANN版本: 9.1.0(本机验证)
  • 操作系统:Linux
  • 其他相关软件版本:ops-math 仓库 master 分支

三、重现步骤 (可选)

bash build.sh --pkg --ops=bitcast --soc=ascend950 -j16

期望:构建成功,包内 ops-info 正常注册 Bitcast,无 kernel 二进制。
实际:kernel 编译链路因 op_kernel 目录不存在报错。

四、预期结果 (可选)

  • cmake/gen_ops_info.cmake:无 op_kernel 目录的算子跳过 kernel 二进制编译,与 get_op_type_and_validate 中已有判断保持一致,并与 cann/ops-nn 仓既有行为对齐;
  • parse_ini_to_json.pyFORMAT_LIST 补充 FRACTAL_NZ_C0_8,使使用该格式的算子 ops-info 校验通过;
  • gen_opcinfo_from_opinfo.pyopFile.value=Null/None 的算子不再写入 kernel 编译清单,避免残留 dynamic/Null.py 条目。

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

likedislike
Ssongkai111成员
13 天前 添加了label:bug-report
songkai111成员
13 天前 评论:

/assign @songkai111

likedislike
CANN-robotCANN-robot成员
13 天前 将 songkai111 设为负责人
CANN-robotCANN-robot成员
12 天前 关闭了 issue
CANN-robotCANN-robot成员
12 天前 添加了label:resolved