昇腾社区首页
中文
注册

RunGraphDistribute

产品支持情况

产品

是否支持

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

Atlas 训练系列产品

Atlas 200/300/500 推理产品

x

功能说明

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

RunGraph接口的区别是:该接口输入的refdata节点是经过切分后的,输出是每个device的输出结果。

函数原型

1
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:运行子图成功。
  • AscendCL的错误码请参考AscendCL应用开发指南 (C&C++)》中的“应用开发接口 > AscendCL API(C&C++) > 数据类型及其操作接口 > aclError

约束说明

  • 对于graph_id中的全量输入,输入顺序约束为:模型data输入 + batch_index + kv。
  • 对于graph_id中的增量输入,输入顺序约束为:模型data输入 + kv。