未验证 提交 030b298e 编写于 作者: L lilong12 提交者: GitHub

fix sample codes in collective.py (#26787)

* fix sample codes, test=develop
上级 435ab2aa
...@@ -73,20 +73,21 @@ def broadcast(tensor, src, group=0): ...@@ -73,20 +73,21 @@ def broadcast(tensor, src, group=0):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle import numpy as np
import paddle.prepare_context as prepare_context import paddle
from paddle.distributed import init_parallel_env
paddle.disable_static()
paddle.set_device('gpu:%d'%paddle.ParallelEnv().dev_id) paddle.disable_static()
prepare_context() paddle.set_device('gpu:%d'%paddle.distributed.ParallelEnv().dev_id)
if paddle.ParallelEnv().local_rank == 0: init_parallel_env()
np_data = np.array([[4, 5, 6], [4, 5, 6]]) if paddle.distributed.ParallelEnv().local_rank == 0:
else: np_data = np.array([[4, 5, 6], [4, 5, 6]])
np_data = np.array([[1, 2, 3], [1, 2, 3]]) else:
data = paddle.to_tensor(np_data) np_data = np.array([[1, 2, 3], [1, 2, 3]])
paddle.distributed.broadcast(data, 1) data = paddle.to_tensor(np_data)
out = data.numpy() paddle.distributed.broadcast(data, 1)
# [[1, 2, 3], [1, 2, 3]] out = data.numpy()
# [[1, 2, 3], [1, 2, 3]]
""" """
if in_dygraph_mode(): if in_dygraph_mode():
return core.ops.c_broadcast(tensor, tensor, 'root', src, return core.ops.c_broadcast(tensor, tensor, 'root', src,
...@@ -129,21 +130,22 @@ def all_reduce(tensor, op=ReduceOp.SUM, group=0): ...@@ -129,21 +130,22 @@ def all_reduce(tensor, op=ReduceOp.SUM, group=0):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle import numpy as np
from paddle.distributed import ReduceOp import paddle
import paddle.prepare_context as prepare_context from paddle.distributed import ReduceOp
from paddle.distributed import init_parallel_env
paddle.disable_static()
paddle.set_device('gpu:%d'%paddle.ParallelEnv().dev_id) paddle.disable_static()
prepare_context() paddle.set_device('gpu:%d'%paddle.distributed.ParallelEnv().dev_id)
if paddle.ParallelEnv().local_rank == 0: init_parallel_env()
np_data = np.array([[4, 5, 6], [4, 5, 6]]) if paddle.distributed.ParallelEnv().local_rank == 0:
else: np_data = np.array([[4, 5, 6], [4, 5, 6]])
np_data = np.array([[1, 2, 3], [1, 2, 3]]) else:
data = paddle.to_tensor(np_data) np_data = np.array([[1, 2, 3], [1, 2, 3]])
paddle.distributed.all_reduce(data) data = paddle.to_tensor(np_data)
out = data.numpy() paddle.distributed.all_reduce(data)
# [[5, 7, 9], [5, 7, 9]] out = data.numpy()
# [[5, 7, 9], [5, 7, 9]]
""" """
if in_dygraph_mode(): if in_dygraph_mode():
if op == ReduceOp.SUM: if op == ReduceOp.SUM:
...@@ -204,20 +206,21 @@ def reduce(tensor, dst, op=ReduceOp.SUM, group=0): ...@@ -204,20 +206,21 @@ def reduce(tensor, dst, op=ReduceOp.SUM, group=0):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle import numpy as np
import paddle.prepare_context as prepare_context import paddle
from paddle.distributed import init_parallel_env
paddle.disable_static()
paddle.set_device('gpu:%d'%paddle.ParallelEnv().dev_id) paddle.disable_static()
prepare_context() paddle.set_device('gpu:%d'%paddle.distributed.ParallelEnv().dev_id)
if paddle.ParallelEnv().local_rank == 0: init_parallel_env()
np_data = np.array([[4, 5, 6], [4, 5, 6]]) if paddle.distributed.ParallelEnv().local_rank == 0:
else: np_data = np.array([[4, 5, 6], [4, 5, 6]])
np_data = np.array([[1, 2, 3], [1, 2, 3]]) else:
data = paddle.to_tensor(np_data) np_data = np.array([[1, 2, 3], [1, 2, 3]])
paddle.distributed.reduce(data, 0) data = paddle.to_tensor(np_data)
out = data.numpy() paddle.distributed.reduce(data, 0)
# [[5, 7, 9], [5, 7, 9]] out = data.numpy()
# [[5, 7, 9], [5, 7, 9]]
""" """
if in_dygraph_mode(): if in_dygraph_mode():
if op == ReduceOp.SUM: if op == ReduceOp.SUM:
...@@ -286,25 +289,26 @@ def all_gather(tensor_list, tensor, group=0): ...@@ -286,25 +289,26 @@ def all_gather(tensor_list, tensor, group=0):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle import numpy as np
import paddle.prepare_context as prepare_context import paddle
from paddle.distributed import init_parallel_env
paddle.disable_static()
paddle.set_device('gpu:%d'%paddle.ParallelEnv().dev_id) paddle.disable_static()
prepare_context() paddle.set_device('gpu:%d'%paddle.distributed.ParallelEnv().dev_id)
tensor_list = [] init_parallel_env()
if paddle.ParallelEnv().local_rank == 0: tensor_list = []
np_data1 = np.array([[4, 5, 6], [4, 5, 6]]) if paddle.distributed.ParallelEnv().local_rank == 0:
np_data2 = np.array([[4, 5, 6], [4, 5, 6]]) np_data1 = np.array([[4, 5, 6], [4, 5, 6]])
data1 = paddle.to_tensor(np_data1) np_data2 = np.array([[4, 5, 6], [4, 5, 6]])
data2 = paddle.to_tensor(np_data2) data1 = paddle.to_tensor(np_data1)
paddle.distributed.all_gather(tensor_list, data1) data2 = paddle.to_tensor(np_data2)
else: paddle.distributed.all_gather(tensor_list, data1)
np_data1 = np.array([[1, 2, 3], [1, 2, 3]]) else:
np_data2 = np.array([[1, 2, 3], [1, 2, 3]]) np_data1 = np.array([[1, 2, 3], [1, 2, 3]])
data1 = paddle.to_tensor(np_data1) np_data2 = np.array([[1, 2, 3], [1, 2, 3]])
data2 = paddle.to_tensor(np_data2) data1 = paddle.to_tensor(np_data1)
out = paddle.distributed.all_gather(tensor_list, data2) data2 = paddle.to_tensor(np_data2)
paddle.distributed.all_gather(tensor_list, data2)
""" """
op_type = 'c_allgather' op_type = 'c_allgather'
helper = LayerHelper(op_type, **locals()) helper = LayerHelper(op_type, **locals())
...@@ -359,25 +363,26 @@ def scatter(tensor, tensor_list=None, src=0, group=0): ...@@ -359,25 +363,26 @@ def scatter(tensor, tensor_list=None, src=0, group=0):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle import numpy as np
import paddle.prepare_context as prepare_context import paddle
from paddle.distributed import init_parallel_env
paddle.disable_static()
paddle.set_device('gpu:%d'%paddle.ParallelEnv().dev_id) paddle.disable_static()
prepare_context() paddle.set_device('gpu:%d'%paddle.distributed.ParallelEnv().dev_id)
if paddle.ParallelEnv().local_rank == 0: init_parallel_env()
np_data1 = np.array([7, 8, 9]) if paddle.distributed.ParallelEnv().local_rank == 0:
np_data2 = np.array([10, 11, 12]) np_data1 = np.array([7, 8, 9])
else: np_data2 = np.array([10, 11, 12])
np_data1 = np.array([1, 2, 3]) else:
np_data2 = np.array([4, 5, 6]) np_data1 = np.array([1, 2, 3])
data1 = paddle.to_tensor(np_data1) np_data2 = np.array([4, 5, 6])
data2 = paddle.to_tensor(np_data2) data1 = paddle.to_tensor(np_data1)
if paddle.ParallelEnv().local_rank == 0: data2 = paddle.to_tensor(np_data2)
paddle.distributed.scatter(data1, src=1) if paddle.distributed.ParallelEnv().local_rank == 0:
else: paddle.distributed.scatter(data1, src=1)
paddle.distributed.scatter(data1, tensor_list=[data1, data2], src=1) else:
out = data1.numpy() paddle.distributed.scatter(data1, tensor_list=[data1, data2], src=1)
out = data1.numpy()
""" """
op_type = 'c_scatter' op_type = 'c_scatter'
global _default_group global _default_group
...@@ -425,13 +430,13 @@ def barrier(group=0): ...@@ -425,13 +430,13 @@ def barrier(group=0):
Examples: Examples:
.. code-block:: python .. code-block:: python
import paddle import paddle
import paddle.prepare_context as prepare_context from paddle.distributed import init_parallel_env
paddle.disable_static() paddle.disable_static()
paddle.set_device('gpu:%d'%paddle.ParallelEnv().dev_id) paddle.set_device('gpu:%d'%paddle.distributed.ParallelEnv().dev_id)
prepare_context() init_parallel_env()
paddle.distributed.barrier() paddle.distributed.barrier()
""" """
op_type = 'barrier' op_type = 'barrier'
temp = paddle.fill_constant([1], dtype="int32", value="1") temp = paddle.fill_constant([1], dtype="int32", value="1")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册