RunGraphAsync
Description
Runs the graph of a specified ID and returns the execution result. This API is asynchronous.
Both this function and RunGraph are used to run the graph of a specified ID and output the result. Specifically:
- This API is asynchronous.
- The allowed data has the same meaning, but different formats.
- You can use the callback function RunAsyncCallback to obtain the compute result of the graph by customizing the function. When the status of the callback function is success, data can be processed.
Prototype
Status RunGraphAsync(uint32_t graph_id, const std::vector<ge::Tensor> &inputs, RunAsyncCallback callback); Status RunGraphAsync(uint32_t graph_id, const ContinuousTensorList &inputs, RunAsyncCallback callback);
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
graph_id |
Input |
Subgraph ID. |
inputs |
Input |
Inputs of the subgraph.
|
callback |
Output |
Callback function of the subgraph. using Status = uint32_t; using RunAsyncCallback = std::function<void(Status, std::vector<ge::Tensor> &)>; |
Returns
Parameter |
Type |
Description |
|---|---|---|
- |
Status |
GE_CLI_GE_NOT_INITIALIZED: GE is not initialized. SUCCESS: The graph is successfully executed by using the asynchronous API. FAILED: The graph fails to be executed by using the asynchronous API. |
Restrictions
None
Example
- Call the AddGraph API to load a subgraph.
1 2 3 4 5 6
std::map <AscendString, AscendString> options; ge::Session *session = new Session(options); uint32_t graph_id = 0; ge::Graph graph; Status ret = session->AddGraph(graph_id, graph);
- You can customize RunAsyncCallback to process data as follows:
1 2 3 4 5 6 7 8 9
void CallBack(Status result, std::vector<ge::Tensor> &out_tensor) { if(result == ge::SUCCESS) { // Read the out_tensor data and process the data as required. for(auto &tensor : out_tensor) { auto data = tensor.GetData(); int64_t length = tensor.GetSize(); } } }
- Define the input data of the graph: const std::vector<ge::Tensor> &inputs
- Call RunGraphAsync(graph_id, inputs, CallBack).
Parent topic: Graph Running APIs