paddle.distributed¶
paddle.distributed 目录包含的 API 支撑飞桨框架大规模分布式训练能力。具体如下:
Fleet 分布式高层 API¶
paddle.distributed.fleet 是分布式训练的统一入口 API,用于配置分布式训练。
API 名称 |
API 功能 |
---|---|
|
设置和获取用户自定义的集群信息,支持集合通信(Collective)及参数服务器(ParameterServer)两种训练架构的初始化 |
|
设置和获取 paddlecloud 集群信息(百度内部集群使用),支持集合通信(Collective)及参数服务器(ParameterServer)两种训练架构的初始化 |
|
配置分布式通信、计算和内存优化等策略 |
|
进行分布式训练配置并初始化 |
|
集合通信架构下,worker 节点初始化 |
|
集合通信架构下,停止正在运行的 worker 节点 |
|
集合通信架构下,强制要求所有的 worker 在此处相互等待一次,保持同步 |
|
参数服务器架构下,server 节点的初始化 |
|
参数服务器架构下的进程启动 |
|
保存用于预测的模型 |
|
保存全量模型参数 |
|
基于分布式并行策略进行模型拆分和优化计算 |
|
分布式训练工具的基类,用户集合通信、文件系统操作 |
|
Hadoop 文件系统查看和管理 |
|
本地文件系统查看和管理 |
环境配置和训练启动管理¶
API 名称 |
API 功能 |
---|---|
|
初始化并行训练环境,支持动态图模式 |
|
启动分布式训练进程,支持集合通信及参数服务器架构 |
|
启动分布式训练进程,仅支持集合通信架构 |
|
获取当前进程的 rank 值 |
|
获取当前进程数 |
数据加载¶
API 名称 |
API 功能 |
---|---|
|
数据加载到内存中,在训练前随机整理数据 |
|
流式数据加载 |
集合通信算法 API¶
在集群上,对多设备的进程组的参数数据 tensor 或 object 进行计算处理。
API 名称 |
API 功能 |
---|---|
|
规约,规约进程组内的 tensor,返回结果至指定进程 |
|
规约,指定逐元素规约操作 |
|
组规约,规约进程组内的 tensor,结果广播至每个进程 |
|
组聚合,聚合进程组内的 tensor,结果广播至每个进程 |
|
组聚合,聚合进程组内的 object,结果广播至每个进程 |
|
广播一个 tensor 到每个进程 |
|
分发 tensor 到每个进程 |
|
切分参数到多个设备 |
|
同步路障,进行阻塞操作,实现组内所有进程的同步 |