RegisterCallBackFunc:注册回调函数的接口使用文档
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
RegisterCallBackFunc 是 GE(Graph Engine)Session 提供的注册回调函数接口,用于登记用户自定义的 Summary、Checkpoint 处理逻辑。当提交给 GE 执行的图中包含 Summary 或 Checkpoint 算子时,GE 在图执行完成后会调用已注册的回调函数并传入对应参数,接口实现位于 api/session/client/。
接口概览与环境依赖
RegisterCallBackFunc 属于ge::Session类的成员接口,作用是将用户实现的回调函数按关键字注册到 Session 的图管理器中。注册成功后,图中 Summary、Checkpoint 算子产生的数据将不再由 GE 内部直接落盘,而是交由回调函数处理。调用前需确保 GE 已通过GEInitialize正确初始化。
- 头文件:
#include <ge/ge_api.h> - 库文件:
libge_runner.so - 声明位置:inc/external/ge/ge_api.h
函数原型与签名
ge::Session类中提供两个重载版本:
Status RegisterCallBackFunc(const std::string &key, const pCallBackFunc &callback); Status RegisterCallBackFunc(const char *key, const session::pCallBackFunc &callback);[!NOTE]说明 参数使用
std::string的写法属于旧版类型风格,后续版本计划废弃,建议使用AscendString数据类型的接口。
参数与返回值说明
参数
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| key | 输入 | 回调类型关键字,字符串或字符格式,取值为 "Summary" 或 "Save" |
| callback | 输入 | 用户实现的回调函数指针,图中对应算子执行后被 GE 调用,参数为 graph_id 与参数 Tensor 映射 |
回调函数指针类型定义:
typedef uint32_t (*pCallBackFunc)(uint32_t graph_id, const std::map<std::string, ge::Tensor> ¶ms_list); typedef uint32_t (*pCallBackFunc)(uint32_t graph_id, const std::map<AscendString, ge::Tensor> ¶ms_list);返回值
| 类型 | 说明 |
|---|---|
| Status | 接口执行结果 |
各状态值含义:
- GE_SESSION_MANAGER_NOT_INIT:Session 管理未初始化
- SUCCESS:注册回调函数成功
- FAILED:注册回调函数失败
调用前必须了解的约束
- 回调关键字仅支持 "Summary" 与 "Save" 两种类型
- 未注册回调即下发含 Summary、Checkpoint 算子的图,执行时会报错
- 当前版本仅支持图执行完成后一次性调用回调函数,不支持执行过程中分批触发
- 注册前的
GEInitialize初始化步骤不可省略,否则返回 FAILED
典型调用场景
典型使用时机为:通过 Session 执行含 Summary 或 Checkpoint 算子的计算图之前,先调用本接口完成回调注册,以便在图执行完成后接收 Summary 数据或执行 Checkpoint 保存逻辑。
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考