RunGraphWithStreamAsync
函数功能
异步执行指定id对应的Graph图,输出执行结果。该接口包括了编译,加载和运行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:异步执行图失败。 |
约束说明
父主题: Graph运行接口