create_nccl_config
- paddle.distributed. create_nccl_config ( nccl_config: dict[str, int | str] | None = None ) NCCLConfig | None [source]
-
Function that creates nccl config.
- Parameters
-
nccl_config (dict[str, int | str] | None) – None or a dict containing the following keys: commName (str): name of the process group. ll_buffsize (int): buffer size of ll protocol. ll128_buffsize (int): buffer size of ll128 protocol. simple_buffsize (int): buffer size of simple protocol. buffsize_align (int): alignment unit of the total buffer size. nchannels (int): max number of channels. algoStr (str): communication algorithm. protoStr (str): communication protocol.
- Returns
-
an object containing the information, which can be used as an argument of new_group().
- Return type
-
NCCLConfig (NCCLConfig | None)
Examples
>>> >>> import paddle >>> import paddle.distributed as dist >>> from typing import Union >>> dist.init_parallel_env() >>> nccl_config: dict[str, Union[int, str]] = {"commName":"tp_comm","ll_buffsize":0,"ll128_buffsize":0,"simple_buffsize":1024,"buffsize_align":1024,"nchannels":4,"algoStr":"Ring","protoStr":"Simple",} >>> ranks=[0,1,2,3,4,5,6,7] >>> nccl_config=dist.create_nccl_config(nccl_config) >>> pg=dist.new_group(ranks, nccl_config=nccl_config) >>> m, n = 4096, 8192 >>> local_rank = dist.get_rank(pg) >>> num_local_ranks = dist.get_world_size(pg) >>> x = paddle.ones(shape=[m, n], dtype=paddle.float32) * (local_rank + 1) >>> dist.all_reduce(x, group=pg)