尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

RegisterCallBackFunc 使用指南:三步快速注册 Summary/Checkpoint 回调

RegisterCallBackFunc 使用指南:三步快速注册 Summary/Checkpoint 回调 RegisterCallBackFunc 使用指南三步快速注册 Summary/Checkpoint 回调【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/geRegisterCallBackFunc 是 GEGraph Engine的回调函数注册接口。本文带你三步完成 GE 回调函数注册引入头文件、按 typedef 定义回调、调用接口注册让 Summary、Checkpoint 算子运行时能正确回调你的函数。 RegisterCallBackFunc 解决什么问题为什么图里有 Summary、Checkpoint 算子当你把一张带有 Summary 或 Checkpoint 算子的图下发给 GE 时GE 在图执行到这些算子的位置需要把对应的张量数据交还给你的业务代码。RegisterCallBackFunc 就是干这件事的你提前注册一个回调函数GE 在合适的时机调用它并通过params_list把相关ge::Tensor传给你。简单说图中有 Summary、Checkpoint 算子 → 你必须先注册回调 → GE 才会调用它。 三步快速注册回调从引入头文件到完成注册第 1 步引入头文件并链接库依赖头文件ge/ge_api.h和运行库libge_runner.so#include ge/ge_api.h第 2 步按 typedef 定义你的回调函数接口提供了两种数据类型的pCallBackFunc定义key 是std::string或const char*时分别对应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算子关联的张量列表返回uint32_t表示执行结果。第 3 步调用 RegisterCallBackFunc 完成注册接口有两个重载原型Status RegisterCallBackFunc(const std::string key, const pCallBackFunc callback)Status RegisterCallBackFunc(const char *key, const session::pCallBackFunc callback)例如注册一个 Summary 回调ge::session::pCallBackFunc myCb [](uint32_t id, const std::mapAscendString, ge::Tensor m) { return SUCCESS; }; session.RegisterCallBackFunc(Summary, myCb); 参数含义与返回值速查key 和 callback 各是什么参数名输入/输出说明key输入回调函数类型的关键字字符串或字符格式支持Summary、Savecallback输入回调函数指针函数内可拿到graph_id与params_list张量信息返回值Status含义GE_SESSION_MANAGER_NOT_INITSession 管理未初始化SUCCESS注册回调函数成功FAILED注册回调函数失败[!NOTE] 数据类型为 string 的接口std::string版本的 key 与pCallBackFunc在后续版本会废弃建议直接使用非 string 版本AscendString/const char*版本。⚠️ 未注册会报什么错约束与常见坑回调类型仅支持 Summary、Save——key传其他值无效Checkpoint 相关场景对应Save关键字。未注册就下发含 Summary、Checkpoint 算子的图会报错——记得在下发图之前完成注册。目前只支持图执行完后一次性调用回调——不要假设回调会在每次算子触发时多次被调用。返回GE_SESSION_MANAGER_NOT_INIT时检查是否已完成 GE 初始化与 Session 创建。 延伸阅读接口文档docs/zh/api/graph_engine_api/cpp/ge/Session/RegisterCallBackFunc.mdv2 版本接口文档docs/zh/api/graph_engine_api/cpp/ge/GeSession/RegisterCallBackFunc.md头文件定义inc/external/ge/ge_api.hSummary/Checkpoint 回调的完整用法示例tests/ge/st/testcase/test_summary_and_checkpoint.ccSession 接口总览docs/zh/api/graph_engine_api/README.md【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表