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)
