已合并
feat: 增加 ONNX Plugin Python API 基础能力 #4353
feat: 增加 ONNX Plugin Python API 基础能力 #4353
已合并
gentle-knight创建于 11 天前
gentle-knight
gentle-knight
11 天前

Pull Request

描述

新增 ONNX Plugin Python API 功能包 A,并修正 ATC 未知错误兜底文案。

业务背景:ONNX Plugin Python 化需要先提供稳定的 Python API、descriptor registry 和共享插件发现能力。ONNX Plugin 与 Python custom op 复用 ASCEND_CUSTOM_OPP_PATH,因此同一物理模块必须避免被不同入口重复执行。

主要变更:

  1. 新增 ge.onnx_plugin API、只读 OnnxNode 和 callback-bound ge.graph.Operator
  2. 新增 descriptor registry,支持 opset 归一化、完整 origin type 展开和重复注册预检查。
  3. 共享 plugin_loader 使用 canonical physical path 保证同一文件或 package 经相对路径、绝对路径、符号链接或 custom op/ONNX Plugin 不同入口发现时只执行一次,并在 import 失败时清理半初始化模块。新增测试覆盖同目录不同文件分别实现 custom op 与 ONNX Plugin,以及环境变量显式列出两个不同文件的场景。
  4. api/atc/main_impl.cc 中 E19999 兜底文案从 Inner Error 修正为 Internal Error,并在 ErrorManager 返回空字符串时输出该兜底文案。

本 PR 仅包含功能包 A,不包含 Native Bridge、ONNX Parser 注册、Parser C++ 代码、Parser UT/ST 或工作包 B 内容。

变更类型

关联的Issue

暂无。

如何测试

  1. 增量构建 ge_python_main_wheel 并刷新 install_ge_py_for_tests,构建通过。
  2. 运行共享 loader 定向测试:原有 8 passed,新增不同文件 custom op/ONNX Plugin 场景 2 passed
  3. 运行其余 ONNX Plugin 功能包 A 定向测试:49 passed
  4. 增量编译 ut_libge_multiparts_utestgraph_engine_test,均通过。
  5. 运行 ATC 空错误消息定向 UT:1 passed
  6. 运行 ATC 空错误消息定向 ST:1 passed
  7. api/atc/main_impl.cc 编译及 atc_static 生成通过;本地 atc_atc.bin 最终链接受现有 libascendalog.so 链接依赖缺失阻塞。
  8. 对全部 PR 文件执行 pre-commit,所有 hooks 通过。
  9. 执行 git diff --check upstream/develop...HEAD,检查通过。

核对清单

其他信息

  • 目标分支:cann/ge:develop
  • 本 PR 保留共享 loader 的 canonical-path 单次加载语义,以保证复用 ASCEND_CUSTOM_OPP_PATH 时 custom op 与 ONNX Plugin 可以安全共存。
  • 本 PR 不包含工作包 B。
  • 建议评审顺序:公开 API、Operator handle/生命周期、registry 冲突语义、共享 loader 共存语义、Python UT。
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 gentle-knight 的贡献)
gentle-knightgentle-knight
11 天前 创建了 pull request,commit c5b3472a
CANN-robotCANN-robot成员
11 天前 添加了label:stat/needs-squash
CANN-robotCANN-robot成员
11 天前 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
11 天前 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/ge 张德鹏, kobemini, hugo111 (3/2) 张德鹏 (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

gentle-knight, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
11 天前 将yangyongqiang0606,kobemini,tangqunzhang,xchu42,hugo111,lining23666,fu-jun2,depeng1994,wqtshg_wt,peiyang,shengnan666,zhangfan_hanq,zhanj,zhujingjing,Mexyy,wangxiaotian995,stevenaw0,yuht9设为评审人
此处折叠了220条消息 查看更多
hugo111成员
10 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
10 天前 添加了label:lgtm
张德鹏成员
9 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
9 天前 添加了label:approved
CANN-robotCANN-robot成员
9 天前 合入了pull request