ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RegisterCallBackFunc 回调函数注册实战指南:一文读懂原型、参数与 3 条约束

RegisterCallBackFunc 回调函数注册实战指南:一文读懂原型、参数与 3 条约束 RegisterCallBackFunc 回调函数注册实战指南一文读懂原型、参数与 3 条约束【免费下载链接】awesome-design-systems ⚒ A collection of awesome design systems项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-design-systemsGE昇腾图引擎的 RegisterCallBackFunc 接口用于提前注册 Summary、Checkpoint 回调让图执行完后 GE 主动把结果交给你。本文带你快速上手原型、参数拆解与 Status 错误码。 它解决什么问题你把图下发给 GE 执行如果图里带有 Summary 或 Checkpoint 算子GE 需要一个回报你业务逻辑的通道——这就是 RegisterCallBackFunc 的用武之地。一句话理解你提前告诉 GE执行完就调用我的函数、把结果交给我之后无需自己轮询结果自动送上门。 原型与头文件速查代码里包含#include ge/ge_api.h并链接libge_runner.so即可使用。接口有两个重载版本Status RegisterCallBackFunc(const std::string key, const pCallBackFunc callback) Status RegisterCallBackFunc(const char *key, const session::pCallBackFunc callback)版本提示数据类型为 string 的接口后续版本会废弃建议使用数据类型为非 string 的接口。回调函数指针的定义如下typedef uint32_t (*pCallBackFunc)(uint32_t graph_id, const std::mapstd::string, ge::Tensor params_list); typedef uint32_t (*pCallBackFunc)(uint32_t graph_id, const std::mapAscendString, ge::Tensor params_list);两个入参分别是什么graph_id是标识当前图执行实例的编号params_list是结果数据的键值映射取值类型为ge::TensorGE 的基础数据载体或AscendString。 参数逐个拆解参数共 2 个均为输入参数一句话结论展开说明key标明你要注册哪种回调字符串或字符格式均可只接受 Summary 和 Save 两个取值callback真正被调用的函数类型为 pCallBackFunc 的函数指针图执行完后由 GE 传入 graph_id 与 params_list 执行⚠️ 返回值与错误码速查返回类型为 Status对照下面的表判断什么场景会拿到什么值Status 取值出现的场景GE_SESSION_MANAGER_NOT_INITSession 管理未初始化先完成初始化再调用本接口SUCCESS回调函数注册成功FAILED回调函数注册失败 注册前必看3 条约束与常见坑回调类型有白名单只支持 Summary 和 Savekey 传其他值不会生效。没注册就下发会直接报错图中带 Summary、Checkpoint 算子却未注册回调下发时 GE 会报错务必先注册、后下图。只支持一次性调用目前仅支持图执行完后一次性调用回调函数执行过程中拿不到中间通知。✅ 小结RegisterCallBackFunc 是 GE 与你业务代码之间的桥梁选一个重载版本用 key callback 完成注册图一执行完结果就会自动送进你的函数。记得优先选用非 string 重载注册后检查 Status再把上面 3 条约束过一遍基本不会踩坑。更多项目背景可参考 README.md。【免费下载链接】awesome-design-systems ⚒ A collection of awesome design systems项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-design-systems创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表