From e0b2e92b510e1a03fbabcdb57476399c7464c9ab Mon Sep 17 00:00:00 2001 From: Wen Sun Date: Wed, 21 Dec 2022 22:28:45 +0800 Subject: [PATCH 1/2] docs: broadcast_object_list & scatter_object_list --- docs/api/paddle/distributed/Overview_cn.rst | 2 ++ .../distributed/broadcast_object_list_cn.rst | 27 ++++++++++++++++++ .../distributed/scatter_object_list_cn.rst | 28 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 docs/api/paddle/distributed/broadcast_object_list_cn.rst create mode 100644 docs/api/paddle/distributed/scatter_object_list_cn.rst diff --git a/docs/api/paddle/distributed/Overview_cn.rst b/docs/api/paddle/distributed/Overview_cn.rst index 2785f419f45..6977f20a8b9 100644 --- a/docs/api/paddle/distributed/Overview_cn.rst +++ b/docs/api/paddle/distributed/Overview_cn.rst @@ -89,7 +89,9 @@ Fleet 分布式高层 API " :ref:`alltoall ` ", "将一组 tensor 分发到每个进程并进行聚合" " :ref:`alltoall_single ` ", "将一个 tensor 分发到每个进程并进行聚合" " :ref:`broadcast ` ", "将一个 tensor 发送到每个进程" + " :ref:`broadcast_object_list ` ", "将一组 object 发送到每个进程" " :ref:`scatter ` ", "将一组 tensor 分发到每个进程" + " :ref:`scatter_object_list ` ", "将一组 object 分发到每个进程" " :ref:`reduce_scatter ` ", "规约一组 tensor,随后将规约结果分发到每个进程" " :ref:`isend ` ", "异步发送一个 tensor 到指定进程" " :ref:`irecv ` ", "异步接收一个来自指定进程的 tensor" diff --git a/docs/api/paddle/distributed/broadcast_object_list_cn.rst b/docs/api/paddle/distributed/broadcast_object_list_cn.rst new file mode 100644 index 00000000000..e552b0abee1 --- /dev/null +++ b/docs/api/paddle/distributed/broadcast_object_list_cn.rst @@ -0,0 +1,27 @@ +.. _cn_api_distributed_broadcast_object_list: + +broadcast_object_list +------------------------------- + + +.. py:function:: paddle.distributed.broadcast_object_list(object_list, src, group=None) + +将一个 picklable 对象发送到每个进程。 +过程与 ``broadcast`` 类似,但可以传入自定义的 python 对象。 + +.. note:: + 该 API 只支持动态图模式。 + +参数 +::::::::: + - **object_list** (List[Any]) - 在目标进程上为待广播的 object 列表,在其他进程上为用于接收广播结果的 object 列表。 + - **src** (int) - 目标进程的 rank,该进程传入的 object 列表将被发送到其他进程上。 + - **group** (Group,可选) - 执行该操作的进程组实例(通过 ``new_group`` 创建)。默认为 None,即使用全局默认进程组。 + +返回 +::::::::: +无返回值。 + +代码示例 +::::::::: +COPY-FROM: paddle.distributed.broadcast_object_list diff --git a/docs/api/paddle/distributed/scatter_object_list_cn.rst b/docs/api/paddle/distributed/scatter_object_list_cn.rst new file mode 100644 index 00000000000..2ff5c704d37 --- /dev/null +++ b/docs/api/paddle/distributed/scatter_object_list_cn.rst @@ -0,0 +1,28 @@ +.. _cn_api_distributed_scatter_object_list: + +scatter_object_list +------------------------------- + + +.. py:function:: paddle.distributed.scatter_object_list(out_object_list, in_object_list, src=0, group=None) + +将一组来自指定进程的 picklable 对象分发到每个进程 +过程与 ``scatter`` 类似,但可以传入自定义的 python 对象。 + +.. note:: + 该 API 只支持动态图模式。 + +参数 +::::::::: + - **out_object_list** (List[Any]) - 用于接收数据的 object 列表。 + - **in_object_list** (List[Any],可选) - 将被分发的 object 列表。默认为 None,因为 rank != src 的进程上的该参数将被忽略。 + - **src** (int,可选) - 目标进程的 rank,该进程的 object 列表将被分发到其他进程中。默认为 0,即分发 rank=0 的进程上的 object 列表。 + - **group** (Group,可选) - 执行该操作的进程组实例(通过 ``new_group`` 创建)。默认为 None,即使用全局默认进程组。 + +返回 +::::::::: +无返回值。 + +代码示例 +::::::::: +COPY-FROM: paddle.distributed.scatter_object_list From 457b8133e5466102eb794d59249c59b70ded5833 Mon Sep 17 00:00:00 2001 From: Wen Sun Date: Fri, 23 Dec 2022 18:27:48 +0800 Subject: [PATCH 2/2] docs: get_backend & is_available --- docs/api/paddle/distributed/Overview_cn.rst | 3 ++- .../api/paddle/distributed/get_backend_cn.rst | 20 +++++++++++++++++++ .../paddle/distributed/is_available_cn.rst | 20 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 docs/api/paddle/distributed/get_backend_cn.rst create mode 100644 docs/api/paddle/distributed/is_available_cn.rst diff --git a/docs/api/paddle/distributed/Overview_cn.rst b/docs/api/paddle/distributed/Overview_cn.rst index 6977f20a8b9..4293191558f 100644 --- a/docs/api/paddle/distributed/Overview_cn.rst +++ b/docs/api/paddle/distributed/Overview_cn.rst @@ -48,7 +48,7 @@ Fleet 分布式高层 API :header: "API 名称", "API 功能" :widths: 20, 50 - + " :ref:`is_available ` ", "检查分布式环境是否可用" " :ref:`init_parallel_env ` ", "初始化并行训练环境,支持动态图模式" " :ref:`launch ` ", "启动分布式训练进程,支持集合通信及参数服务器架构" " :ref:`spawn ` ", "启动分布式训练进程,仅支持集合通信架构" @@ -56,6 +56,7 @@ Fleet 分布式高层 API " :ref:`get_world_size ` ", "获取当前进程数" " :ref:`new_group ` ", "创建分布式通信组" " :ref:`destroy_process_group ` ", "销毁分布式通信组" + " :ref:`get_backend ` ", "获取指定分布式通信组后端的名称" .. _03: diff --git a/docs/api/paddle/distributed/get_backend_cn.rst b/docs/api/paddle/distributed/get_backend_cn.rst new file mode 100644 index 00000000000..6dcf74b218c --- /dev/null +++ b/docs/api/paddle/distributed/get_backend_cn.rst @@ -0,0 +1,20 @@ +.. _cn_api_distributed_get_backend: + +get_backend +------------------------------- + +.. py:function:: paddle.distributed.get_backend(group=None) + +获取指定分布式通信组后端的名称。 + +参数 +::::::::: + - **group** (Group,可选) - 指定的通信组。默认为 None,即使用全局默认进程组。 + +返回 +::::::::: +``str``,通信组后端的名称。 + +代码示例 +:::::::::::: +COPY-FROM: paddle.distributed.get_backend diff --git a/docs/api/paddle/distributed/is_available_cn.rst b/docs/api/paddle/distributed/is_available_cn.rst new file mode 100644 index 00000000000..a98e6495e03 --- /dev/null +++ b/docs/api/paddle/distributed/is_available_cn.rst @@ -0,0 +1,20 @@ +.. _cn_api_distributed_is_available: + +is_available +------------------------------- + +.. py:function:: paddle.distributed.is_available() + +检查分布式环境是否可用。 + +参数 +::::::::: +无 + +返回 +::::::::: +``bool``,如果分布式环境可用,返回 True;反之返回 False。 + +代码示例 +::::::::: +COPY-FROM: paddle.distributed.is_available