文档
注册

RunGraphWithStreamAsync

函数功能

异步执行指定id对应的Graph图,输出执行结果。

此函数与RunGraph均为执行指定id对应的图,并输出结果,区别于RunGraph的是,该接口:

  • 异步执行。
  • inputs和outputs均为Device上的内存空间,且需要在执行前由用户分配内存大小。
    如下两种情况用户可以不分配输出内存:
    • 用户通过RegisterExternalAllocator设置了外置allocator,如果没有分配输出内存,由GE调用外置allocator的接口分配内存,用户需要在外置allocator析构前释放这块内存。
    • 用户没有设置外置allocator,动态图场景,如果没有分配输出内存,Ge使用内置allocator分配内存,内存的生命周期与图的生命周期保持一致,用户需要在图卸载前(Session析构前、GEFinalize前)主动释放此内存。

函数原型

Status RunGraphWithStreamAsync(uint32_t graph_id, void *stream, const std::vector<Tensor> &inputs,std::vector<Tensor> &outputs);

参数说明

参数名

输入/输出

描述

graphId

输入

子图对应的id。

stream

输入

指定图在哪个Stream上执行。

inputs

输入

当前子图对应的输入数据,为Device上的内存空间。

outputs

输出

当前子图对应的输出数据,为Device上的内存空间。

返回值

参数名

类型

描述

-

Status

SUCCESS:异步执行图成功。

FAILED:异步执行图失败。

约束说明

  • 调用该接口前,需要确定好Device上分配的内存大小。
  • 调用该接口前,需要通过aclrtCreateStream创建Stream。
  • 得到输出执行结果前,需要通过aclrtSynchronizeStream接口保证Stream上的任务已经执行完。

调用示例

请参见异步执行Graph

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词