RunGraphWithStreamAsync
产品支持情况
| 
          产品  | 
        
          是否支持  | 
       
|---|---|
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          x  | 
       
功能说明
异步运行指定id对应的Graph图,输出运行结果。该接口包括了编译,加载和运行Graph的操作。
此函数与RunGraph均为运行指定id对应的图,并输出结果,区别于RunGraph的是,该接口:
- 异步运行。
 - inputs和outputs均为Device上的内存空间,且需要在运行前由用户分配内存大小。
      如下两种情况用户可以不分配输出内存:
- 用户通过RegisterExternalAllocator设置了外置allocator,如果没有分配输出内存,由GE调用外置allocator的接口分配内存,用户需要在外置allocator析构前释放这块内存。
 - 用户没有设置外置allocator,动态图场景,如果没有分配输出内存,Ge使用内置allocator分配内存,内存的生命周期与图的生命周期保持一致,用户需要在图卸载前(Session析构前、GEFinalize前)主动释放此内存。
 
 
函数原型
          1
           | 
         
          Status RunGraphWithStreamAsync(uint32_t graph_id, void *stream, const std::vector<Tensor> &inputs,std::vector<Tensor> &outputs)  | 
        
参数说明
| 
          参数名  | 
        
          输入/输出  | 
        
          说明  | 
       
|---|---|---|
| 
          graph_id  | 
        
          输入  | 
        
          子图对应的id。  | 
       
| 
          stream  | 
        
          输入  | 
        
          指定图在哪个Stream上运行。  | 
       
| 
          inputs  | 
        
          输入  | 
        
          当前子图对应的输入数据,为Device上的内存空间。  | 
       
| 
          outputs  | 
        
          输出  | 
        
          当前子图对应的输出数据,为Device上的内存空间。  | 
       
返回值说明
| 
          参数名  | 
        
          类型  | 
        
          说明  | 
       
|---|---|---|
| 
          -  | 
        
          Status  | 
        
          SUCCESS:异步运行图成功。 FAILED:异步运行图失败。  | 
       
约束说明
     父主题: Graph运行接口