paddle.distributed 目录包含的 API 支撑飞桨框架大规模分布式训练能力。具体如下:
Fleet 分布式高层 API <01>
环境配置和训练启动管理 <02>
数据加载 <03>
集合通信算法 API <04>
paddle.distributed.fleet 是分布式训练的统一入口 API,用于配置分布式训练。
API 名称 |
API 功能 |
UserDefinedRoleMaker <cn_api_distributed_fleet_UserDefinedRoleMaker> |
设置和获取用户自定义的集群信息,支持集合通信(Collective)及参数服务器(ParameterServer)两种训练架构的初始化 |
PaddleCloudRoleMaker <cn_api_distributed_fleet_PaddleCloudRoleMaker> |
设置和获取 paddlecloud 集群信息(百度内部集群使用),支持集合通信(Collective)及参数服务器(ParameterServer)两种训练架构的初始化 |
DistributedStrategy <cn_api_distributed_fleet_DistributedStrategy> |
配置分布式通信、计算和内存优化等策略 |
fleet.init <cn_api_distributed_fleet_Fleet> |
进行分布式训练配置并初始化 |
fleet.init_worker <cn_api_distributed_fleet_Fleet> |
集合通信架构下,worker 节点初始化 |
fleet.stop_worker <cn_api_distributed_fleet_Fleet> |
集合通信架构下,停止正在运行的 worker 节点 |
fleet.barrier_worker <cn_api_distributed_fleet_Fleet> |
集合通信架构下,强制要求所有的 worker 在此处相互等待一次,保持同步 |
fleet.init_server <cn_api_distributed_fleet_Fleet> |
参数服务器架构下,server 节点的初始化 |
fleet.run_server <cn_api_distributed_fleet_Fleet> |
参数服务器架构下的进程启动 |
fleet.save_inference_model <cn_api_distributed_fleet_Fleet> |
保存用于预测的模型 |
fleet.save_persistables <cn_api_distributed_fleet_Fleet> |
保存全量模型参数 |
fleet.distributed_optimizer <cn_api_distributed_fleet_Fleet> |
基于分布式并行策略进行模型拆分和优化计算 |
UtilBase <cn_api_distributed_fleet_UtilBase> |
分布式训练工具的基类,用户集合通信、文件系统操作 |
utils.HDFSClient <cn_api_distributed_fleet_utils_fs_HDFSClient> |
Hadoop 文件系统查看和管理 |
utils.LocalFS <cn_api_distributed_fleet_utils_fs_LocalFS> |
本地文件系统查看和管理 |
API 名称 |
API 功能 |
init_parallel_env <cn_api_distributed_init_parallel_env> |
初始化并行训练环境,支持动态图模式 |
launch <cn_api_distributed_launch> |
启动分布式训练进程,支持集合通信及参数服务器架构 |
spawn <cn_api_distributed_spawn> |
启动分布式训练进程,仅支持集合通信架构 |
get_rank <cn_api_distributed_get_rank> |
获取当前进程的 rank 值 |
get_world_size <cn_api_distributed_get_world_size> |
获取当前进程数 |
API 名称 |
API 功能 |
InMemoryDataset <cn_api_distributed_InMemoryDataset> |
数据加载到内存中,在训练前随机整理数据 |
QueueDataset <cn_api_distributed_QueueDataset> |
流式数据加载 |
在集群上,对多设备的进程组的参数数据 tensor 或 object 进行计算处理。
API 名称 |
API 功能 |
reduce <cn_api_distributed_reduce> |
规约,规约进程组内的 tensor,返回结果至指定进程 |
ReduceOP <cn_api_distributed_ReduceOp> |
规约,指定逐元素规约操作 |
all_reduce <cn_api_distributed_all_reduce> |
组规约,规约进程组内的 tensor,结果广播至每个进程 |
all_gather <cn_api_distributed_all_gather> |
组聚合,聚合进程组内的 tensor,结果广播至每个进程 |
all_gather_object <cn_api_distributed_all_gather_object> |
组聚合,聚合进程组内的 object,结果广播至每个进程 |
broadcast <cn_api_distributed_broadcast> |
广播一个 tensor 到每个进程 |
scatter <cn_api_distributed_scatter> |
分发 tensor 到每个进程 |
split <cn_api_distributed_split> |
切分参数到多个设备 |
barrier <cn_api_distributed_barrier> |
同步路障,进行阻塞操作,实现组内所有进程的同步 |