昇腾社区首页
中文
注册

ShardGraphsToFile

产品支持情况

产品

是否支持

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

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

Atlas 训练系列产品

Atlas 200/300/500 推理产品

x

功能说明

大模型分布式编译切分场景下使用:Graph太大场景下,需要调用该接口,进行切图,并将切后的图保存为pb文件。

切分图接口,对Session内的图按照AddGraph的顺序进行切分,切分后的图保存为pb文件

切分方式由options参数说明中的ge.graphParallelOptionPath参数配置,若未使能并行切分功能,则接口不会进行切分。

切分后的图,命名规则:

  • 若工作在SPMD模式,切分后的图的命名规则为:{原图名}_{ClusterId}_{ItemId}_{ChipId}_{VirtualStageId}_{原图GraphId},切分后的图的个数将为原图的个数*切分份数。
  • 若工作在非SPMD模式,切分后的图命名规则为:{原图名}_{原图GraphId},切分后的图的个数将等于原图个数。

切图以后,原图将不在Session内存在,生成的新的切分后图的GraphId将使用其他Id替代原图的GraphId。

  • 该接口与SaveGraphsToPb接口区别:

    ShardGraphsToFile适用于大模型分布式编译切分场景,而SaveGraphsToPb适用于任何图。

  • 该接口与ShardGraphs接口区别
    • ShardGraphsToFile可以完成搜索策略、图的切分,并输出切分后的图等文件,切分后的图也通过该接口落盘(file_path参数必须指定有效路径)。
    • 而ShardGraphs完成搜索策略、图的切分,并输出切分后的图等文件后,切分后的图保存在内存中,然后通过SaveGraphsToPb落盘

函数原型

1
Status ShardGraphsToFile(const char_t *file_path = "./") const

参数说明

参数名

输入/输出

说明

file_path

输入

保存图和权重的目录,必须为一个合法路径。

如果该参数为空,则只进行切图,不生成pb文件。

返回值说明

参数名

类型

说明

-

Status

SUCCESS:成功

FAILED: 失败

约束说明

当前仅支持并行切分模式打开时才可以使能。

调用示例

1
2
3
4
5
Session session(options); // options中已使能并行切分功能
Graph init_graph("init_graph");
Graph first_graph("first_graph");
Graph second_graph("second_graph");
session.ShardGraphsToFile("/xxx/graph_path");