---
title: RunGraphDistribute
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/atlasgeapi_07_0101.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/atlasgeapi_07_0101.html
indexId: e4ad9f5e0e5fceff83eebc939cef3b6ecd55d4529e383e6c1d28f8643893ddeb72
---
# RunGraphDistribute

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | x |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 头文件/库文件

- 头文件：#include <ge/ge_api.h>
- 库文件：libge_runner.so


#### 功能说明

对输入refdata节点切分后，同步运行指定ID对应的Graph图，输出运行结果。

与RunGraph接口的区别是：该接口输入的refdata节点是经过切分后的，输出是每个Device的输出结果。


#### 函数原型

```
Status RunGraphDistribute(uint32_t graph_id, const std::map<int32_t, std::vector<Tensor>> &device_to_inputs, std::map<int32_t, std::vector<Tensor>> &device_to_outputs)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| graph\_id | 输入 | 要运行图对应的ID。 |
| device\_to\_inputs | 输入 | 计算图输入Tensor，为Host上分配的内存空间。 使用const std::map<int32\_t, std::vector<Tensor>>作为输入，为切分后每个Device ID下对应的输入。 |
| device\_to\_outputs | 输出 | 计算图输出Tensor，用户无需分配内存空间，运行完成后GE会分配内存并赋值。 使用std::map<int32\_t, std::vector<Tensor>>作为输出结果，记录每个Device ID对应的计算图结果。 |


#### 返回值说明

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| \- | Status | SUCCESS：运行子图成功。 错误码请参考“Runtime运行时 API > 数据类型及其操作接口 > aclError(https://www.hiascend.com/document/detail/zh/canncommercial/900/API/runtimeapi/aclcppdevg\_03\_1345.html)”。 |


#### 约束说明

- 对于graph_id中的全量输入，输入顺序约束为：模型data输入 + batch_index + kv。
- 对于graph_id中的增量输入，输入顺序约束为：模型data输入 + kv。
