已合并
feat: Python化可编译自定义算子 #4388
shangdf创建于 19 天前
feat: Python化可编译自定义算子 #4388
已合并
shangdf创建于 19 天前
shangdf成员
19 天前

描述

基于 upstream/develop 实现 Python 化可编译自定义算子:Python 自定义算子可以声明 compile 接口,并在在线图编译阶段通过真实 OpCompileContext 获取编译 option、平台资源、核数和 SoC 信息。

主要变更:

  • 增加 compilable 能力收集、schema 参数绑定、get_compile_ctx() 及 native OpCompileContext 绑定。
  • 扩展 Python custom-op bridge ABI 和 C++ adapter,支持将规范化 IR 元数据及编译上下文转发给 Python compile 回调。
  • 编译回调中的 Tensor、Tensor 属性和上下文使用只读借用视图,回调退出后统一失效。
  • Python compile 仅允许在线图构建;离线模式明确拒绝执行 Python 用户代码。
  • 修复动态输入/输出创建顺序与 IR 顺序不一致时的实例起始索引。
  • 补充 Python UT、C++ UT、真实 CustomGraphOptimizer ST、API 文档和设计文档。

变更类型

关联的Issue

无。

如何测试

  1. 增量构建 ge_compileratc_staticge_executorge_python_custom_op_bridgecustom_op_runtime 和相关测试目标成功;完整目标未宣称全量构建通过。
  2. Python custom-op 定向测试:100 passed。
  3. 动态 I/O 上下文 C++ UT:3 passed。
  4. Python bridge、ABI、adapter 和离线门禁 C++ 定向 UT:10 tests passed。
  5. 通过 CustomGraphOptimizer::OptimizeWholeGraph 触发真实 Python compile 回调及离线跳过门禁的 ST:2 passed。

核对清单

其他信息

  • 基线:cann/ge:develop,基线提交 b300e9b3cda3a4563a7a1d6b922f5df8929f309d
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 shangdf 的贡献)
Sshangdf成员
19 天前 创建了 pull request,commit eea4da6e
Sshangdf成员
19 天前 update merge request[project id: 8824148, iid: 4388, commit_id: 0de7eb174db58f3672b4cc259830227242f6b729] virtual merging success
Sshangdf成员
19 天前 强制推送  10 个提交:eea4da6e-9 commits from branch develop48584f6d-feat: Python化可编译自定义算子
Sshangdf成员
19 天前 update merge request[project id: 8824148, iid: 4388, commit_id: acf8fcd4999e74ce3152be7fcdfe20f2dd6cf130] virtual merging success
CANN-robotCANN-robot成员
19 天前 添加了label:cann-cla/yes
此处折叠了573条消息 查看更多
hugo111成员
8 天前 评论:

/lgtm

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

/approve

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