已合并
fix:BorrowOpCompileContext 入参类型变更 #4646
lfz2812创建于 5 天前
fix:BorrowOpCompileContext 入参类型变更 #4646
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 lfz2812 的贡献)atomgit-bot
5 天前 评论:
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 == 0U抛std::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.cc):create_impl_holder回调的 lambda 返回类型写法由-> void * {调整为-> void *{,属纯格式改动,无业务影响。


atomgit-bot
5 天前 评论:
5 天前 评论:
5 天前 添加了label:cann-cla/yes
此处折叠了46条消息 查看更多
yangyongqiang
5 天前 评论:
5 天前 评论:
/lgtm


5 天前 添加了label:lgtm
yangyongqiang
4 天前 评论:
4 天前 评论:
/approve


4 天前 添加了label:approved
4 天前 合入了pull request
Pull Request
描述
主要调整了自定义算子(custom op)场景下编译上下文对象在 Python/C++ 绑定层之间的传递方式:原先 BorrowOpCompileContext 接收 uintptr_t 整数句柄,现在改为接收 py::capsule,并在绑定侧通过 GetContextFromCapsule 校验 capsule 类型名后取出 gert::OpCompileContext 指针,使上下文传递具备类型安全校验,同时删除了原基于整数句柄的空指针检查逻辑。
变更类型
请选择本次引入的变更类型:
关联的Issue
如何测试
描述测试此变更的步骤和前提条件:
1.
2.
核对清单
其他信息
在此添加任何其他关于本次 PR 的说明。