已合并
fix:BorrowOpCompileContext 入参类型变更 #4646
lfz2812创建于 5 天前
fix:BorrowOpCompileContext 入参类型变更 #4646
已合并
lfz2812创建于 5 天前
lfz2812成员
5 天前

Pull Request

描述

主要调整了自定义算子(custom op)场景下编译上下文对象在 Python/C++ 绑定层之间的传递方式:原先 BorrowOpCompileContext 接收 uintptr_t 整数句柄,现在改为接收 py::capsule,并在绑定侧通过 GetContextFromCapsule 校验 capsule 类型名后取出 gert::OpCompileContext 指针,使上下文传递具备类型安全校验,同时删除了原基于整数句柄的空指针检查逻辑。

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

描述测试此变更的步骤和前提条件:
1.
2.

核对清单

其他信息

在此添加任何其他关于本次 PR 的说明。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 lfz2812 的贡献)
Llfz2812成员
5 天前 添加了label:enhancement
Llfz2812成员
5 天前 创建了 pull request,commit 97ef57c5
atomgit-bot
atomgit-bot
5 天前 评论:

变更摘要

该 PR 主要调整了自定义算子(custom op)场景下编译上下文对象在 Python/C++ 绑定层之间的传递方式:原先 BorrowOpCompileContext 接收 uintptr_t 整数句柄,现在改为接收 py::capsule,并在绑定侧通过 GetContextFromCapsule 校验 capsule 类型名后取出 gert::OpCompileContext 指针,使上下文传递具备类型安全校验,同时删除了原基于整数句柄的空指针检查逻辑。

主要改动

  • BorrowOpCompileContext 入参类型变更(context_binding.cc:将函数签名由 BorrowOpCompileContext(uintptr_t ctx_handle) 改为 BorrowOpCompileContext(const py::capsule &ctx_handle),删除原先对 ctx_handle == 0Ustd::invalid_argument 的校验,改为通过 GetContextFromCapsule<gert::OpCompileContext>(ctx_handle, "gert::OpCompileContext") 从 capsule 中校验并取出编译上下文。
  • 调用侧改为传递 capsule(python_custom_op_pybind_bridge.cc_borrow_op_compile_context 的入参由 py::int_(reinterpret_cast<uintptr_t>(ctx)) 改为 py::capsule(ctx, "gert::OpCompileContext"),即以带类型名的 Python capsule 对象传递编译上下文,与绑定侧的新接口保持一致。
  • 小幅格式调整(python_custom_op_pybind_bridge.cccreate_impl_holder 回调的 lambda 返回类型写法由 -> void * { 调整为 -> void *{,属纯格式改动,无业务影响。
likedislike
atomgit-bot
atomgit-bot
5 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
5 天前 添加了label:cann-cla/yes
此处折叠了46条消息 查看更多
yangyongqiang
yangyongqiang成员
5 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
5 天前 添加了label:lgtm
yangyongqiang
yangyongqiang成员
4 天前 评论:

/approve

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