RunGraphAsync
函数功能
异步执行指定id对应的Graph图,输出执行结果。
函数原型
Status RunGraphAsync(uint32_t graphId, const std::vector<ge::Tensor> &inputs, RunAsyncCallback callback)
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
graphId |
输入 |
子图对应的id。 |
inputs |
输入 |
当前子图对应的输入数据。 |
callback |
输出 |
当前子图对应的回调函数。 using Status = uint32_t; using RunAsyncCallback = std::function<void(Status, std::vector<ge::Tensor> &)>; |
返回值
参数名 |
类型 |
描述 |
---|---|---|
- |
Status |
GE_CLI_GE_NOT_INITIALIZED:GE未初始化。 SUCCESS:异步执行图成功。 FAILED:异步执行图失败。 |
约束说明
无。
芯片支持情况
昇腾310 AI处理器,不支持该接口。
昇腾910 AI处理器,支持该接口。
昇腾710 AI处理器,支持该接口。
调用示例
此函数与RunGraph均为执行指定id对应的图,并输出结果,区别于RunGraph的是,该接口:
- 异步执行。
- 承载数据的数据格式不一样,但含义相同。
- 用户通过回调函数RunAsyncCallback获取图计算结果,即用户自行定义函数RunAsyncCallback。该回调函数,当status为success时,即可处理数据。
使用示例:
- 用户自定义RunAsyncCallback,来决定如何处理数据, 例如:
void CallBack(Status result,std::vector<ge::Tensor> &out_tensor) { if(result == ge::SUCCESS) { // 读取out_tensor数据, 用户根据需求处理数据; for(auto &tensor : out_tensor) { auto data = tensor.data; int64_t length = tensor.length; } } }
- 定义好指定图的输入数据const std::vector<ge::Tensor> &inputs;
- 调用接口RunGraphAsync(inputs, CallBack);
父主题: Graph运行接口